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

AWS EventBridge如何在同一字段组合使用anything-but与prefix匹配

核心结论

AWS EventBridge 不支持在anything-but运算符内直接嵌套prefix、wildcard等其他匹配规则,这是当前规则不生效的核心原因。EventBridge的多条件组合需要通过$and/$or/$not三个顶层逻辑运算符实现,不支持同一字段下无包裹的链式匹配语法。

原规则的语法错误
  • anything-but 运算符仅支持传入精确值列表做排除,不支持嵌套其他匹配运算符,写法"anything-but": [{"prefix": "libwww-perl"}]属于无效语法,不会按预期执行排除逻辑。
  • 其余两个前缀匹配的写法不存在语法问题:单条件匹配时可直接写匹配运算符,额外包裹数组代表数组内多条件满足任意一个即匹配,单条件下两种写法效果一致。
正确配置

使用$not运算符对前缀匹配条件取反,实现「排除前缀为libwww-perl的UserAgent」的需求,完整可用的规则模式如下:

{
  "detail": {
    "eventType": {
      "prefix": "user.session.start"
    },
    "outcome": {
      "result": {
        "prefix": "FAILURE"
      }
    },
    "client": {
      "userAgent": {
        "rawUserAgent": [
          {
            "$not": [
              {
                "prefix": "libwww-perl"
              }
            ]
          }
        ]
      }
    }
  }
}
匹配逻辑说明
  • 事件同时满足三个条件时会被规则捕获:eventType以user.session.start开头、outcome.result以FAILURE开头、rawUserAgent不以libwww-perl开头。
  • 你提供的示例事件中rawUserAgent值为libwww-perl/6.15,命中prefix: libwww-perl条件,会被$not取反后排除,不会触发规则,符合筛选要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 13:45:34