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

如何在Amazon EventBridge中匹配布尔值false而非仅检查存在性?

在Amazon EventBridge中匹配布尔类型值false的方法

要在EventBridge事件模式中匹配布尔值false(而非仅检查字段是否存在),你可以直接在模式中指定字段的目标值为false,无需使用exists操作符。EventBridge支持直接匹配布尔类型的原始值,写法和匹配字符串、数字的逻辑一致。

结合你提供的S3事件示例,布尔字段实际嵌套在requestParameters.PublicAccessBlockConfiguration层级下,以下是两种场景的事件模式写法:

场景1:匹配字段存在且值为false

如果仅需要匹配字段存在且值明确为false的情况,事件模式可以这样写:

{
  "source": ["aws.s3"],
  "detail-type": ["AWS API Call via CloudTrail"],
  "detail": {
    "eventSource": ["s3.amazonaws.com"],
    "eventName": ["PutBucketPublicAccessBlock", "DeleteBucketPublicAccessBlock"],
    "requestParameters": {
      "PublicAccessBlockConfiguration": {
        "$or": [
          {"RestrictPublicBuckets": [false]},
          {"BlockPublicPolicy": [false]},
          {"BlockPublicAcls": [false]},
          {"IgnorePublicAcls": [false]}
        ]
      }
    }
  }
}

场景2:匹配字段不存在 或 字段存在且值为false

如果需要同时覆盖“字段不存在”和“字段存在但值为false”两种情况,可以在$or中同时包含两种条件:

{
  "source": ["aws.s3"],
  "detail-type": ["AWS API Call via CloudTrail"],
  "detail": {
    "eventSource": ["s3.amazonaws.com"],
    "eventName": ["PutBucketPublicAccessBlock", "DeleteBucketPublicAccessBlock"],
    "requestParameters": {
      "PublicAccessBlockConfiguration": {
        "$or": [
          {"RestrictPublicBuckets": [false]},
          {"RestrictPublicBuckets": [{"exists": false}]},
          {"BlockPublicPolicy": [false]},
          {"BlockPublicPolicy": [{"exists": false}]},
          {"BlockPublicAcls": [false]},
          {"BlockPublicAcls": [{"exists": false}]},
          {"IgnorePublicAcls": [false]},
          {"IgnorePublicAcls": [{"exists": false}]}
        ]
      }
    }
  }
}

注意:你的原始事件模式遗漏了requestParameters.PublicAccessBlockConfiguration的层级,必须对应事件中的实际嵌套结构才能正确匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 11:01:34