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

Terraform配置DynamoDB流Lambda事件过滤规则报错如何解决

问题原因

过滤规则语法不符合Lambda事件源过滤的规范,具体错误点:

  1. 规则层级嵌套错误:anything-but是Lambda事件过滤的内置匹配运算符,需要直接作用于字段的匹配逻辑,不能放在数组内部作为数组元素。
  2. DynamoDB Stream事件结构适配错误:Stream记录中NewImage下的字段格式为<字段名>: {<数据类型标识>: <字段值/匹配规则>},数据类型标识(如本例的BOOL)对应的取值直接写匹配规则即可,不需要额外包裹数组。你的配置中给BOOL的值套了一层方括号,会被服务端识别为要匹配数组类型的BOOL值,和实际数据结构不符,因此抛出无效模式错误。
修正方案

删除BOOL取值外层多余的数组包裹,将anything-but规则直接作为BOOL的属性值即可,修正后的完整配置:

filter_criteria {
  filter {
    pattern = jsonencode({
      dynamodb = {
        NewImage = {
          completed = {
            BOOL = { "anything-but": [true] }
          }
        }
      }
    })
  }
}

补充说明:该规则会命中所有completed字段值不等于true的记录,包含completed值为false、以及记录中不存在completed字段的场景。如果需要强制要求记录必须存在completed字段、且值不为true,可以额外增加exists: true的匹配规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 23:00:17