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

如何在Step Functions中无论状态成败都传递状态名称至下一状态

跨成功/失败状态传递自定义信息的方案

针对你提到的ResultSelector仅在状态成功时生效的问题,有两种直接的方式实现无论状态成败都传递自定义信息:

  • 在失败分支的Catch块中配置ResultSelector
    利用状态机的Catch机制,在捕获错误时同样使用ResultSelector添加自定义键值对,配合ResultPath控制结果的存储方式。示例配置:

    "Catch": [
      {
        "ErrorEquals": ["States.ALL"],
        "ResultSelector": {
          "customMessage": "状态执行失败时的自定义信息",
          "errorDetails.$": "$"
        },
        "ResultPath": "$.failureData",
        "Next": "后续处理状态"
      }
    ]
    

    这里既保留了原始错误详情,又注入了自定义信息,通过ResultPath指定将结果嵌套到failureData字段下。

  • 新增统一处理状态
    创建一个专门的Pass类型状态,让成功分支和失败分支都跳转到这个状态,在该状态中统一配置ResultSelector添加自定义信息。示例:

    "统一信息处理状态": {
      "Type": "Pass",
      "ResultSelector": {
        "globalCustomInfo": "无论成败都传递的统一信息",
        "originalResult.$": "$"
      },
      "Next": "最终目标状态"
    }
    

    上游状态成功时直接Next到该状态,失败时通过Catch跳转过来,就能确保所有分支都带上自定义信息。

  • 关键注意点
    无论是成功还是失败场景,ResultPath决定了自定义信息与原始数据的合并逻辑:用$会完全替换原始数据,用$.xxx则会将结果嵌套到指定字段中,可根据实际需求选择。

内容的提问来源于stack exchange,提问作者ben890

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 22:42:35