我正在使用updateItem()函数,该函数将在Dynamodb中插入或更新值。如果值正在更新,我想获取这些项目并调用一个新的lambda函数。我该如何实现?
答案 0 :(得分:2)
最直接的方法是将ReturnValues: 'UPDATED_NEW'
添加到用于updateItem()
调用的参数中。
然后您可以判断是否插入了新项,因为返回的Attributes
将包含您的分区键(如果使用复合键,则进行排序)。
这是因为您不能更改项目的密钥,因此,如果您只完成更新项目,那么就不会更新其密钥。但是,如果您创建了一个新项目,那么您将“更新”它的密钥。
但是,如果要对dynamo表中正在更新的项目做出反应,则可以选择使用DynamoDB流(docs)。
这些流允许您在发电机表上的事务上触发lambda。然后,该lambda可以过滤事件以进行更新并做出相应的反应。这种体系结构方法的优势在于,如果任何内容更新了表(而不仅仅是特定的lambda),则将触发您的“ onUpdate”功能。