Lambda对DynamoDB的事件过滤-事件名称INSERT不起作用

0

【以下的问题经过翻译处理】 我将DynamoDB设置为我的Lambda函数的触发器,并使用以下过滤条件,但不起作用。

{"event_name": ["INSERT"]}

我阅读了一些正确编写过滤器的示例,但它仍未触发Lambda。此外,我的Lambda fn的详细信息如下所示。

“key”来自哪里,它代表我传递给处理程序的“Event”中的什么?

下面是我的“Event”样式;

Event {
    records:[
        EventRecord {
            change:StreamRecord {
                approximate_creation_date_time:___
                keys:{“id”:String(“___”)},
                new_image:{
                    ....
                    “valid”:Boolean(true),
                },
               ...
            },
            ...
            event_name:“INSERT”,
            event_source:Some(“aws:dynamodb”),
            table_name:None
        }
    ]
}

其他令我困扰的问题,例如看到“table_name”为空,因为触发器特别在更改特定的现有表中的数据时调用。

profile picture
EXPERTE
gefragt vor 9 Monaten19 Aufrufe
1 Antwort
0

【以下的回答经过翻译处理】 如您所见此处,Lambda 接收到的事件如下:

{
  "eventID": "c9fbe7d0261a5163fcb6940593e41797",
  "eventName": "INSERT",
  "eventVersion": "1.1",
  "eventSource": "aws:dynamodb",
  "awsRegion": "us-east-2",
  "dynamodb": {
    "ApproximateCreationDateTime": 1664559083.0,
    "Keys": {
      "SK": { "S": "PRODUCT#CHOCOLATE#DARK#1000" },
      "PK": { "S": "COMPANY#1000" }
    },
    "NewImage": {
      "quantity": { "N": "50" },
      "company_id": { "S": "1000" },
      "fabric": { "S": "Florida Chocolates" },
      "price": { "N": "15" },
      "stores": { "N": "5" },
      "product_id": { "S": "1000" },
      "SK": { "S": "PRODUCT#CHOCOLATE#DARK#1000" },
      "PK": { "S": "COMPANY#1000" },
      "state": { "S": "FL" },
      "type": { "S": "" }
    },
    "SequenceNumber": "700000000000888747038",
    "SizeBytes": 174,
    "StreamViewType": "NEW_AND_OLD_IMAGES"
  },
  "eventSourceARN": "arn:aws:dynamodb:us-east-2:111122223333:table/chocolate-table-StreamsSampleDDBTable-LUOI6UXQY7J1/stream/2022-09-30T17:05:53.209"
}

由于您只需要插入操作,您的筛选模式应如下所示:

{ "eventName": ["INSERT"]}

在您的情况下,您指定了event_name

profile picture
EXPERTE
beantwortet vor 9 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen