AWS lambda筛选条件未筛选出事件



我已经通过web接口以JSON格式向DynamoDB触发器添加了筛选条件:第一个:

{"eventName": [ "MODIFY" ]}

第二个

{"dynamodb":{"NewImage":{"answer":{"S":["Example"]}}}}

我还试着检查答案是否存在(作为答案的替代测试==示例(

{"dynamodb":{"NewImage":{"answer":[{"exists":true}]}}}

我在日志中看到lambda是为json执行的,其中answer不是"Example"或根本不存在
过滤器不工作的可能原因是什么?

活动部分:

{
"Records": [
{
"eventID": "....",
"eventName": "MODIFY",
"eventVersion": "1.1",
"eventSource": "aws:dynamodb",
"awsRegion": "eu-central-1",
"dynamodb": {
"ApproximateCreationDateTime": 1661168370,
"Keys": {
"id": {
"S": "...."
}
},
"NewImage": {
"createdAt": {
"S": "2022-08-22T09:52:39.891Z"
},
"answer": {
"S": "AUT"
},
....

这可能会让您失望,不幸的是,这不是您的错,而是Lambda触发器的异步行为问题。为触发器注册过滤器的底层微服务,在第一次注册事件过滤器时,似乎会删除事件过滤器。

我希望aws-lambda团队能够赶上积压的工作并修复这个错误。


现在是解决方案

遵循以下步骤:

  1. 删除当前触发器。(将其从lambda函数控制台中删除(
  2. 从同一个表中添加新的触发器,并为筛选器添加其他设置。(我尝试了如下的属性过滤(
{"dynamodb": {"NewImage": {"answer": {"S": ["Example"]}}}}
  1. 部署和测试

最新更新