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

如何在Cloud Custodian webhook中拼接字符串与JMESPath查询构建请求体

解决方法

你之前写法不生效的原因是拆分了反引号的作用范围,Cloud Custodian只会把反引号包裹的内容识别为JMESPath表达式,反引号外的内容会被当做普通JSON字符串处理,两者不会自动拼接。

你只需要把完整的字符串拼接逻辑放在同一对反引号内,使用JMESPath内置的字符串拼接语法即可实现需求,正确的webhook配置如下:

- type: webhook
  url: https://api.datadoghq.eu/api/v1/events
  method: POST
  headers:
    DD-API-KEY: '`{{ dd_api_key }}`'
  body: |- 
    {
      "title": "nutkin news", 
      "text": "squirrel found in account", 
      "tags": [
        `'resource_name:' + resource.Name`,
        `'policy_name:' + policy.name`,
        `'account_id:' + account_id`
      ]
    }

如果担心符号冲突,也可以用JMESPath的join函数实现拼接,效果完全一致:

"tags": [
  `join(':', ['resource_name', resource.Name])`,
  `join(':', ['policy_name', policy.name])`,
  `join(':', ['account_id', account_id])`
]

注意事项

  • 反引号内的字符串字面量需要用单引号包裹,避免和外层JSON的双引号产生转义冲突
  • 所有需要Custodian解析的变量逻辑都要放在反引号范围内,不要拆分反引号和静态字符串

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 23:27:07