amazon-web-services - 仅更新某些属性时如何使用 DynamoDBStreamEvent 触发 Lambda

标签 amazon-web-services amazon-s3 aws-lambda amazon-dynamodb serverless-framework

我使用无服务器框架来部署 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/

相关文章:

amazon-web-services - 在 s3 存储桶中使用 'folders' 有什么好处吗?

aws-lambda - 环境变量的最大大小

node.js - 如何使用带有 node.js 的 aws Lambda 将项目放入 aws DynamoDb

node.js - 将文件从 React 上传到 S3 会出现 CORS 错误

javascript - S3 : Allow download of files for those who have some token

amazon-web-services - 如何通过内存监控EC2实例?

amazon-web-services - S3 : The bucket can not be accessed by its root account?

amazon-web-services - 引用 AppSync 和 Cognito Auth 的现有设置

amazon-web-services - AWS S3 : Lifecycle rules for permanently deleting delete markers

javascript - 如何在 Lambda 函数中定义 emit() 属性