如何在Step Function中动态传递API Payload并解决JSONPath字段缺失报错
报错根因
你当前的报错是因为Step Function的API Gateway Invoke状态中,配置了Payload.$的取值路径为$.id,但API Gateway传递给Step Function的输入只有{"ISIN":"12sd"},没有匹配的id字段,导致JSONPath查询失败。
解决方案
根据你的实际业务需求,选择对应修改方式即可:
方案一:调整Step Function的Payload取值路径(推荐,适配现有传参逻辑)
如果下游API需要的是你传入的ISIN字段值,直接修改Step Function对应状态的Payload配置:
- 若要直接传
ISIN的值作为Payload,把原配置的Payload.$: $.id改为Payload.$: $.ISIN - 若要把
ISIN的值封装到id字段中传递,配置修改为:
"Payload": { "id.$": "$.ISIN" }
- 若要把整个输入参数都传给下游API,配置修改为
Payload.$: $
方案二:调整传参逻辑,补充id字段
如果你确定Payload需要取id字段的值,可以修改入侧配置:
- 直接修改API Gateway的请求Body,新增
id字段,示例:{"ISIN":"12sd", "id": "自定义id值"} - 或者修改API Gateway的集成映射规则,将现有参数映射为
id字段后再传递给Step Function
验证建议
修改完成后,先直接给Step Function传入测试输入{"ISIN":"12sd"}执行验证,确认流程无报错后,再通过API Gateway发起请求验证,可快速定位是否存在集成配置问题。
内容的提问来源于stack exchange,提问作者Surya Pratap
相关产品推荐
相关产品推荐

