问题描述
我有一个 AWS step 函数需要依次调用 3 个 lambda,但是在每次调用结束时,step 函数需要处理来自 lambda 的响应,并确定下一个 lambda 调用。
那么阶跃函数如何处理来自 lambda 的响应呢?你能举个例子吗?
解决方法
有两种方法可以从阶跃函数中捕获 lambda 函数的响应。
- 使用
add_retry
和add_catch
处理来自 lambda 函数的任何异常 例如。
.start(record_ip_task
.add_retry(errors=["States.TaskFailed"],interval=core.Duration.seconds(2),max_attempts=2)
.add_catch(errors=["States.ALL"],handler=notify_failure_job)) \
- 来自 lambda 函数的响应值,例如
return '{"Result": True}
然后步骤函数作业将为下一个任务检查该值,例如。
.next(
is_block_succeed
.when(step_fn.Condition.boolean_equals('$.Result',False),notify_failure_job)
.otherwise(send_slack_task)
)
参考:https://dev.to/vumdao/aws-guardduty-combine-with-security-hub-and-slack-17eh https://github.com/vumdao/aws-guardduty-to-slack