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

Lambda事件过滤DDB触发器:如何同时匹配OldImage和NewImage的DriftResult条件?

解决DynamoDB事件过滤的逻辑与匹配问题

你当前的过滤规则未明确指定**逻辑与(AND)**关系,导致EventBridge仅匹配NewImage的条件,忽略了OldImage的约束。要实现同时满足两个条件的过滤,必须使用$and操作符将两个子条件包裹,明确要求事件同时符合所有规则。

正确的过滤规则

{
  "$and": [
    {
      "dynamodb": {
        "NewImage": {
          "DriftResult": {
            "BOOL": [true]
          }
        }
      }
    },
    {
      "dynamodb": {
        "OldImage": {
          "DriftResult": {
            "BOOL": [false]
          }
        }
      }
    }
  ]
}

规则说明

这个配置会严格筛选同时满足以下两个条件的DynamoDB事件:

  • NewImage中的DriftResult字段值为true
  • OldImage中的DriftResult字段值为false

额外优化(可选)

由于只有**更新操作(MODIFY)**才会包含OldImage,插入(INSERT)或删除(REMOVE)事件不会携带该字段。如果你的场景仅关注更新操作,可以添加eventName过滤,让规则更严谨:

{
  "$and": [
    {
      "eventName": ["MODIFY"]
    },
    {
      "dynamodb": {
        "NewImage": {
          "DriftResult": {
            "BOOL": [true]
          }
        }
      }
    },
    {
      "dynamodb": {
        "OldImage": {
          "DriftResult": {
            "BOOL": [false]
          }
        }
      }
    }
  ]
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 03:05:26