AWS Step Functions中如何获取Lambda含点键名的输出值?
AWS Step Functions 处理带点的JSON键名取值问题
当Lambda输出包含带点(.)的JSON键名(如{"foo.bar": "Something"})时,直接使用$.foo.bar的JSONPath语法会失效,因为Step Functions会将.解析为层级分隔符,尝试查找foo对象下的bar属性,而非键名为foo.bar的属性。
正确的取值配置
需要使用JSONPath的方括号语法,将带点的键名用引号包裹,有两种写法可选:
- 使用转义双引号包裹键名(适用于JSON格式的配置):
{ "value.$": "$[\"foo.bar\"]" }
- 使用单引号包裹键名(无需转义,更简洁):
{ "value.$": "$.'foo.bar'" }
以上两种写法都能正确识别键名为foo.bar的属性,将值Something传递给后续Lambda函数的负载中。
内容的提问来源于stack exchange,提问作者Santiago Lopera Naranjo
相关产品推荐
相关产品推荐

