我使用无服务器框架来部署 cloudFormation。
我想在我使用某些属性更新我的 DynamoDB 表后触发 lambda 来删除我的 S3 存储桶上的对象,例如。我的表有帐户、用户、图标,我只想要当我更新图标时,它会触发 Lambda 删除我在 S3 存储桶上的 iconObject。
当我阅读 AWS 上的文档时,dynamoDB 流事件的 eventName 似乎只有三个状态,REMOVE、MODIFY、INSERT。
AWS Documentation » Amazon DynamoDB » API Reference » Data Types » Amazon DynamoDB Streams » Record
Record
我可以做如下吗?但是我怎么知道它更新图标而不是帐户或用户等其他属性?
if (this._record.eventName === 'MODIFY' && this._record.NewImage!== this._record.OldImage ){
return this._remove(this._record.dynamodb);
}
最佳答案
你走在正确的轨道上。如果 DynamoDB StreamViewType 设置为 NEW_AND_OLD_IMAGES
那么当 record.eventName === 'MODIFY'
, record.dynamodb.NewImage
将包含项目的更新版本和 record.dynamodb.OldImage
将包含更新前的项目。然后,您可以检查 2 个对象并查找您感兴趣的字段中的更改。
关于amazon-web-services - 仅更新某些属性时如何使用 DynamoDBStreamEvent 触发 Lambda,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50518925/