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

AWS Step Function使用InputPath后如何获取原始输入并调整并行状态输出

解决方案

核心问题是你在Parallel状态层设置了InputPath: $.Body,导致所有并行分支接收的输入就只有原始输入的Body字段内容,就算子任务设置ResultPath: null返回分支原始输入,也只能返回截断后的Body内容,无法拿到外层的MessageAttributes字段。

你可以按以下步骤修改状态机定义:

  • 删除Process Videos并行状态上的InputPath: $.Body配置,让并行状态完整接收原始输入,所有分支的输入也会同步为完整的原始payload
  • 把InputPath: $.Body配置下沉到每个子任务层,保证任务执行时的输入还是你需要的Body内容
  • 保留各子任务的ResultPath: null配置,这样每个分支执行完成后会返回分支的原始输入(也就是完整的带MessageAttributes的payload)

修改后的状态机示例:

{
  "StartAt": "Process Videos",
  "States": {
    "Process Videos": {
      "Type": "Parallel",
      "Next": "Finalizer",
      "Branches": [
        {
          "StartAt": "GPS Parser",
          "States": {
            "GPS Parser": {
              "Type": "Task",
              "Resource": "x",
              "InputPath": "$.Body",
              "ResultPath": null,
              "End": true
            }
          }
        },
        {
          "StartAt": "Video Creator",
          "States": {
            "Video Creator": {
              "Type": "Task",
              "Resource": "x",
              "InputPath": "$.Body",
              "ResultPath": null,
              "End": true
            }
          }
        }
      ]
    },
    "Finalizer": {
      "Type": "Task",
      "Resource": "x",
      "End": true
    },
    "ErrorHandler": {
      "Type": "Task",
      "Resource": "x",
      "End": true
    }
  }
}

修改后并行状态的输出就会符合你需要的格式,每个数组元素都包含完整的Body和MessageAttributes字段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 01:51:04