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

AWS API Gateway请求模板JSONPath匹配含特殊字符值的问题

解决API Gateway集成EventBridge时含点号字段的JSONPath匹配问题

问题原因

你遇到的Source字段为空的问题,是因为JSONPath默认会把.解析为层级分隔符,直接写my.item.key会被当作嵌套字段而非完整的字符串值,导致无法匹配到目标元素。

正确的JSONPath写法

针对tags数组中name值为my.item.key的元素,使用以下两种JSONPath语法都能正确匹配:

  1. 单引号包裹目标字符串(最常用的方式)

    $.tags[?(@.name == 'my.item.key')].value
    

    这里用单引号将my.item.key括起来,告诉JSONPath把它当作完整的字符串进行匹配,而非层级路径。

  2. 方括号属性访问语法(兼容更多特殊字符场景)

    $.tags[?(@['name'] == 'my.item.key')]['value']
    

    通过@['name']的方式访问字段,同样能避免.被误解析的问题。

在AWS CDK的AWSIntegration中配置示例

如果是在VTL模板里引用这个JSONPath,需要转义单引号,示例如下:

{
  "Source": "$input.json('$.tags[?(@.name == \\'my.item.key\\')].value')",
  "DetailType": "$input.json('$.event.header.eventType.key')",
  "Detail": "$input.json('$')"
}

这样配置后,API Gateway就能正确提取到tags数组中指定name对应的value作为EventBridge事件的Source字段了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 05:02:12