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

Map状态中调用的Step Function无法传入指定输入的问题求助

问题分析与解决

你的问题出在内部Task未将Map状态生成的输入传递给子状态机。虽然Map状态的Parameters已正确把$.ids_list中的每个元素转换为{"id": "xxx"}格式,但调用startExecution.sync:2时,未指定要传递给子状态机的输入,导致子状态机默认接收空字典。

修复方案

修改InsideStep的Parameters,添加"Input.$": "$",将Map处理后的当前输入完整传递给子状态机:

"Map": {
  "Type": "Map",
  "ItemProcessor": {
    "ProcessorConfig": {
      "Mode": "INLINE"
    },
    "StartAt": "InsideStep",
    "States": {
      "InsideStep": {
        "Type": "Task",
        "Resource": "arn:aws:states:::states:startExecution.sync:2",
        "Parameters": {
          "StateMachineArn": "arn:aws:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
          "Input.$": "$"  // 新增该行,传递当前输入给子状态机
        },
        "End": true
      }
    }
  },
  "Next": "Consolidate logs",
  "Catch": [
    {
      "ErrorEquals": [
        "States.ALL"
      ],
      "Next": "Log error",
      "ResultPath": "$.error"
    }
  ],
  "ItemsPath": "$.ids_list",
  "MaxConcurrency": 10,
  "Parameters": {
    "id.$": "$$.Map.Item.Value"
  }
}

关键说明

  • Map状态的Parameters:将$.ids_list中的每个元素(假设为字符串ID)包装为{"id": "xxx"},该结果会作为InsideStep的输入。
  • Input.$": "$":告知startExecution.sync:2任务,将当前Step的输入(即Map生成的{"id": "xxx"})作为子状态机的执行输入。

若需对子状态机的输入做进一步定制,也可直接在此构造,例如:

"Input.$": "{\"customId.$\": \"$.id\"}"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 17:20:26