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

无法从AWS Step Function向AWS Lambda传递含数组的参数

解决AWS Step Functions传递含数组参数到Lambda时数组为null的问题

问题核心原因

硬编码参数能正常工作,但通过执行输入传递含数组的JSON时数组变为null,本质是没有正确在Step Function定义中使用动态路径引用执行输入的数组字段,或是执行输入的JSON存在语法错误导致解析失败。


解决方案步骤

1. 修改Step Function的Parameters定义,使用动态路径引用

将硬编码的参数替换为带. $后缀的路径引用,让Step Functions从执行输入中动态读取值(包括数组)。

示例1:直接将整个执行输入作为Lambda的Payload传递

"Parameters": {
  "Payload.$": "$",
  "FunctionName": "AWS Lambda ARN"
}

示例2:指定Payload中的具体字段(匹配执行输入的结构)
如果执行输入的结构为{"namespace": "XXX", "jobname": "XXX", "jobversion": "XXX", "jobenvironmentvariable": [...]},则Step Function定义应改为:

"Parameters": {
  "Payload": {
    "namespace.$": "$.namespace",
    "jobname.$": "$.jobname",
    "jobversion.$": "$.jobversion",
    "jobenvironmentvariable.$": "$.jobenvironmentvariable"
  },
  "FunctionName": "AWS Lambda ARN"
}

关键:所有需要动态读取的字段(包括数组)必须添加. $后缀,否则会被当作字符串字面量传递,而非引用输入值。

2. 确保执行输入的JSON格式完全正确

执行输入的JSON不能有语法错误(比如缺逗号、冒号,引号不匹配),否则Step Functions会解析失败,导致对应字段变为null。正确的执行输入示例:

{
  "namespace": "ABC",
  "jobname": "Job1",
  "jobversion": "1",
  "jobenvironmentvariable": [
    {"name": "PROFILE", "value": "dev"},
    {"name": "ID", "value": "12345"}
  ]
}

3. 验证参数传递正确性

  • 执行Step Function后,查看Execution Details中的Input和Output,确认数组字段是否正确映射到Lambda调用参数。
  • 在Lambda函数中添加日志打印event参数,直接验证接收到的数组内容是否完整。

4. 适配EventBridge触发场景

如果用EventBridge触发Step Function,EventBridge的事件会包含detail层级,需调整路径引用:

"Payload": {
  "namespace.$": "$.detail.namespace",
  "jobname.$": "$.detail.jobname",
  "jobversion.$": "$.detail.jobversion",
  "jobenvironmentvariable.$": "$.detail.jobenvironmentvariable"
}

不同的EventBridge规则只需修改detail中的参数内容,即可复用同一个Step Function调用Lambda的不同逻辑。


常见坑点提醒

  • 遗漏. $后缀:直接写"jobenvironmentvariable": "$.jobenvironmentvariable"会把字符串"$.jobenvironmentvariable"传给Lambda,而非输入中的数组。
  • 路径不匹配:执行输入的字段名和Step Function中引用的路径必须完全一致,否则会返回null。
  • JSON语法错误:执行输入中的逗号、冒号缺失是最容易忽略的问题,务必用JSON校验工具检查格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 04:16:13