【问题标题】:DynamoDB streams filter with nested fields not working嵌套字段不起作用的 DynamoDB 流过滤器
【发布时间】:2022-12-17 03:16:56
【问题描述】:

我有一个连接到我的 DynamoDB 流的 Lambda。它被配置为在满足两个条件时触发:

  • 事件名称 = "修改"
  • 状态 > 10

我的过滤器如下所示:

{"eventName": ["MODIFY"], "dynamodb": {"NewImage": {"status": [{"numeric": [">", 10]}]}}}

如果过滤器配置为仅在事件名称为 MODIFY 时触发,它会起作用,但是比这更复杂的任何事情都不会触发我的 Lambda。该事件如下所示:

{
    "eventID": "ba1cff0bb53fbd7605b7773fdb4320a8",
    "eventName": "MODIFY",
    "eventVersion": "1.1",
    "eventSource": "aws:dynamodb",
    "awsRegion": "us-east-1",
    "dynamodb":
    {
        "ApproximateCreationDateTime": 1643637766,
        "Keys":
        {
            "org":
            {
                "S": "test"
            },
            "id":
            {
                "S": "61f7ebff17afad170f98e046"
            }
        },
        "NewImage":
        {
            "status":
            {
                "N": "20"
            }
        }
    }
}

使用 test_event_pattern 端点时,它确认过滤器有效:

filter = {
    "eventName":  ["MODIFY"],
    "dynamodb": {
        "NewImage": {
            "status":  [ { "numeric": [ ">", 10 ] } ]
        }
    }
}

response = client.test_event_pattern(
    EventPattern=json.dumps(filter),
    Event="{\"id\": \"e00c66cb-fe7a-4fcc-81ad-58eb60f5d96b\", \"eventName\": \"MODIFY\", \"dynamodb\": {\"NewImage\":{\"status\": 20}}, \"detail-type\": \"myDetailType\", \"source\": \"com.mycompany.myapp\", \"account\": \"123456789012\", \"time\": \"2016-01-10T01:29:23Z\", \"region\": \"us-east-1\"}"
)
print(response) >> {'Result': True, 'ResponseMetadata': {'RequestId':...}

有什么我忽略的吗? DynamoDB 过滤器是否不适用于实际的新图像?

【问题讨论】:

  • 你找到解决办法了吗?我面临着同样的问题。

标签: aws-lambda amazon-dynamodb amazon-dynamodb-streams


【解决方案1】:

可能你自己已经发现了,但对其他人来说

它缺少 dynamodb json 特定的数字字段叶:

{
  "eventName": ["MODIFY"],
  "dynamodb": {
    "NewImage": {
      "status": { "N": [{ "numeric": [">", 10] }] }
    }
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-03
    • 1970-01-01
    • 1970-01-01
    • 2020-12-07
    • 2021-06-07
    相关资源
    最近更新 更多