仅使用插入配置DynamoDB流触发器



i当前具有AWS DynamoDB流触发lambda函数。

lambda函数均由 insert UPDATE 在DynamoDB中的事件触发。有没有一种方法可以更改配置,以便lambda函数只能由'insert'触发

据我所知,这是不可能的。AWS lambda polls 当它检测到任何类型的流记录更新时,流并调用您的lambda功能。您的lambda将不得不忽略您不感兴趣的记录。您可以使用流记录的EventName属性(可以具有值insert insert | modify | remove)

您可以使用lambda功能忽略静止。

 for record in event.get('Records'):
    if record.get('eventName') in ('INSERT'):
       """ code for execution. """
    elif record.get('eventName') == 'REMOVE':
        pass
    elif record.get('eventName') ==  'MODIFY':
        pass

一般而言,不仅对于nodejs,而且对于所有类型,都支持 non Global 表。

可以找到良好的过滤片段。

在触发功能之前,您基本上将过滤在lambda服务方面。

ps,也很棒的文章解释了它的工作原理

虽然被接受的答案准确,但现在由lambda事件过滤利用事件源映射支持。

aws lambda create-event-source-mapping 
    --function-name my-function 
    --event-source-arn arn:aws:sqs:us-east-2:123456789012:my-queue 
    --filter-criteria "{"Filters": [{"Pattern": "{ "a" : [ 1, 2 ]}"}]}"

此外,您可以将其包括在云层或CDK工作流程中。有关更多详细信息,请参阅此信息。

您现在可以使用流滤波器,并过滤您仅需要的事件类型:

https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/streams.lambda.tutorial2.html

最新更新