You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 19:09:03