查找值是否已更新或插入到Dynamodb中?

时间:2018-10-25 09:08:01

标签: python-2.7 amazon-web-services aws-lambda amazon-dynamodb

我正在使用updateItem()函数,该函数将在Dynamodb中插入或更新值。如果值正在更新,我想获取这些项目并调用一个新的lambda函数。我该如何实现?

1 个答案:

答案 0 :(得分:2)

最直接的方法是将ReturnValues: 'UPDATED_NEW'添加到用于updateItem()调用的参数中。

然后您可以判断是否插入了新项,因为返回的Attributes将包含您的分区键(如果使用复合键,则进行排序)。

这是因为您不能更改项目的密钥,因此,如果您只完成更新项目,那么就不会更新其密钥。但是,如果您创建了一个新项目,那么您将“更新”它的密钥。

但是,如果要对dynamo表中正在更新的项目做出反应,则可以选择使用DynamoDB流(docs)

这些流允许您在发电机表上的事务上触发lambda。然后,该lambda可以过滤事件以进行更新并做出相应的反应。这种体系结构方法的优势在于,如果任何内容更新了表(而不仅仅是特定的lambda),则将触发您的“ onUpdate”功能。

相关问题