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

AWS Step Functions中如何按二级标签提取InputSecurityGroup

AWS Step Functions 提取带指定标签的InputSecurityGroup问题解答

问题描述

我通过ListInputSecurityGroup任务返回了指定JSON数据,想要用OutputPath提取带有use:for_rtmp_pipeline标签的InputSecurityGroup。在通用JSONPath测试器里,表达式$.output[?(@.Tags.use == "for_rtmp_pipeline")]能返回目标元素,但在AWS Step Functions或数据流模拟器里用不带引号的表达式$.output[?(@.Tags.use == for_rtmp_pipeline)]却没有结果。想知道这是不是AWS JSONPath引擎的限制?有没有其他语法可以正确提取目标元素?

原因分析

AWS Step Functions使用的是JMESPath而非标准JSONPath,这就是核心差异。JMESPath是AWS生态常用的查询语言,语法规则和通用JSONPath有明显区别,比如字符串必须加引号、过滤表达式的写法不同,这直接导致你之前的标准JSONPath表达式在AWS环境中无法生效。

解决方法

使用符合JMESPath语法的表达式即可正确提取目标元素:

  • 正确表达式:output[?Tags.use == 'for_rtmp_pipeline']
    说明:
    1. JMESPath中字符串必须用单引号或双引号包裹,不能省略
    2. 无需添加开头的$,因为OutputPath默认从根节点开始解析
    3. 过滤条件里不需要@符号,JMESPath默认以当前数组元素为上下文

你可以在Step Functions控制台的内置测试工具中验证这个表达式的效果,确认是否能正确返回目标InputSecurityGroup。

补充说明

AWS旗下多数服务(如Step Functions、CloudWatch、ECS等)均采用JMESPath作为数据查询语言,和通用JSONPath不是同一标准,使用时需要注意两者的语法差异,避免混用导致查询失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 01:45:36