Amazon web services 是否可以仅在Dynamo的商品到期时调用lambda

Amazon web services 是否可以仅在Dynamo的商品到期时调用lambda,amazon-web-services,aws-lambda,amazon-dynamodb,ttl,Amazon Web Services,Aws Lambda,Amazon Dynamodb,Ttl,我已经设置了Dynamo表,并且在其中一列上启用了stream和TTL(timetolive)。我也有一个lambda,它将从迪纳摩河拉入 现在要么添加、删除或编辑,要么TTL过期——所有这些都将导致lambda调用 我对添加或编辑事件不感兴趣,我只希望流接收已删除的、TTL过期的条目,这可能吗 此外,我可以明确地在lambda代码和流程中进行检查,仅当事件类型为“delete”时,但无论如何,仍将进行add、edit的lambda调用。请引导遗憾的是,您不能使DynamoDB流,只流删除或过期

我已经设置了Dynamo表,并且在其中一列上启用了stream和TTL(timetolive)。我也有一个lambda,它将从迪纳摩河拉入

现在要么添加、删除或编辑,要么TTL过期——所有这些都将导致lambda调用

我对添加或编辑事件不感兴趣,我只希望流接收已删除的、TTL过期的条目,这可能吗


此外,我可以明确地在lambda代码和流程中进行检查,仅当事件类型为“delete”时,但无论如何,仍将进行add、edit的lambda调用。请引导

遗憾的是,您不能使DynamoDB流,只流删除或过期的项目。一切都是流式的,由lambda函数过滤感兴趣的事件

对于TTL过期项目,您的功能需要:


另一种方法是使用第二个表,只使用TTL标记。如果主表经历了大量的更新和修改,这可能会很有用。这样,第二个表上的流只会为每个项调用函数两次,即创建和TTL过期,而不是为所有您不感兴趣的更新调用函数。

好主意,但仍然会调用lambda,对吗?我所有的表都连接到一个Lambda。我将确保除删除和过期之外的任何内容都是不可操作的,但每件事都会占用lambda调用的带宽。@Unbreakable是的,表中的每一个更改都会调用您的函数。但您每月有100万次免费调用,因此根据您的工作负载,这对于您的用例来说可能足够了,并且不会花费您多少钱?最后一个问题-我如何区分已删除事件和通过TTL删除的事件。有什么标志我可以检查吗?@Unbreakable TTL删除的记录将具有
用户身份
,正如我在回答
principalId时给出的那样:“dynamodb.amazonaws.com”

        "userIdentity":{
            "type":"Service",
            "principalId":"dynamodb.amazonaws.com"
        }