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

如何在Step Function中从对象数组输入提取metaData作为下一步输入

问题描述

当前Step Function的输出是对象数组格式:

[{"status" : "VALIDATION_FAILED","memberData":{"metaData" : {"fileId" : 101,"FileName" : "abc.txt"}}}]

想要把里面的metaData作为下一个Step的输入,但用常规的inputPath: $.status这类方式访问时,因为输入是带[]的数组,会报错:Invalid path '$.status' : Property ['status'] not found in path $,没法正常访问内部变量。

解决方法

核心原因是输入是数组类型,不能直接用对象属性路径访问,得先通过数组索引定位到数组里的对象,再提取目标字段,下面是两种常用的解决方式:

方式1:用inputPath直接定位到metaData

通过数组索引[0]先拿到数组里的第一个对象,再逐级访问到metaData:

"NextStepName": {
  "Type": "Task",
  "Resource": "arn:aws:states:us-east-1:123456789012:lambda:function:YourFunction",
  "InputPath": "$[0].memberData.metaData",
  "End": true
}

这么配置后,下一个Step的输入就会直接是:

{"fileId" : 101,"FileName" : "abc.txt"}

方式2:用Parameters字段提取并自定义输入结构

如果需要保留部分其他字段,或者想重新构造输入的结构,可以用Parameters来精准提取:

"NextStepName": {
  "Type": "Task",
  "Resource": "arn:aws:states:us-east-1:123456789012:lambda:function:YourFunction",
  "Parameters": {
    "fileId.$": "$[0].memberData.metaData.fileId",
    "fileName.$": "$[0].memberData.metaData.FileName"
  },
  "End": true
}

这种方式可以自己定义输出的字段名和结构,灵活性更强。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 18:05:05