如何在AWS Step Function中向AWS API Gateway传递路径参数
配置问题说明
你的配置存在两处核心错误:
- 缺少动态参数标识
AWS Step Function 中,如果需要在Parameters字段内使用 JSONPath 从输入中动态取值,对应的参数名必须添加.$后缀。你当前的Path字段没有加该后缀,因此系统会将/sample/$.id作为固定字符串处理,不会解析其中的$.id路径。 InputPath配置错误
你设置了"InputPath": "$.id",这会将该状态的输入从原始的{ "id": "1231" }过滤为单纯的字符串"1231",此时状态输入已经不存在id属性,就算Path配置了动态解析也无法取到对应值。
修正后的状态定义
"API Gateway Request": { "Type": "Task", "Resource": "arn:aws:states:::apigateway:invoke", "Parameters": { "ApiEndpoint": "****.amazonaws.com", "Method": "GET", "Headers": { "Accept": [ "application/json" ] }, "Stage": "dev", "Path.$": "States.Format('/sample/{}', $.id)", "AuthType": "IAM_ROLE" }, "Next": "Lambda Invoke", "ResultPath": "$.myStateInput" }
修改点说明:
- 将
Path字段改为Path.$,标记该字段需要动态解析 - 使用Step Function内置的
States.Format函数拼接路径,避免字符串拼接错误 - 移除了错误的
InputPath配置,保留原始输入对象用于取值
内容的提问来源于stack exchange,提问作者born to code
相关产品推荐
相关产品推荐

