AWS Step Functions如何实现任务失败跳Lambda、成功则结束执行的逻辑
实现方案
核心逻辑说明
AWS Step Functions的错误分支跳转不需要依赖Choice状态实现,Task类型的状态内置了Catch错误捕获配置项,可以直接匹配执行错误、跳转至目标状态,同时支持将错误上下文传递到下游。
完整状态机定义示例
{ "Comment": "ExampleState错误分支处理状态机示例", "StartAt": "ExampleState", "States": { "ExampleState": { "Type": "Task", "Resource": "arn:aws:lambda:<你的区域>:<你的账号ID>:function:<ExampleLambda函数名>", "Catch": [ { "ErrorEquals": ["States.TaskFailed"], "Next": "AnotherLambda", "ResultPath": "$.taskError" } ], "End": true }, "AnotherLambda": { "Type": "Task", "Resource": "arn:aws:lambda:<你的区域>:<你的账号ID>:function:<AnotherLambda函数名>", "End": true } } }
关键配置说明
Catch规则直接挂载在ExampleState的配置下,仅当该状态执行抛出错误时才会触发规则匹配ErrorEquals: ["States.TaskFailed"]可匹配该Lambda执行所有未被更细粒度规则捕获的执行失败错误,若需要捕获所有类型错误可替换为["States.ALL"]ResultPath: "$.taskError"会将错误上下文(固定包含Error错误类型、Cause错误详情两个字段)追加到状态输入的taskError节点,和原有输入数据一起传入下游的AnotherLambda,可直接在Lambda代码中读取该字段完成存储逻辑ExampleState默认配置End: true,执行成功后直接终止状态机,符合成功分支的需求
内容的提问来源于stack exchange,提问作者RaxGG
相关产品推荐
相关产品推荐

