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

How to use DynamoDBStreamEvent Trigger Lambda when only update certain attribute

我使用无服务器框架来部署 cloudFormation。 我想在使用某些属性更新我的 DynamoDB Table 后触发 lambda 到我的 S3 存储桶上的 deleteObject,例如。我的 table 有帐户、用户、图标,我只想在更新图标时触发 Lambda 删除我在 S3 存储桶上的 iconObject。

当我阅读 AWS 上的文档时,dynamoDB 流事件的 eventName 似乎只有三种状态,REMOVE、MODIFY、INSERT。

AWS 文档 » Amazon DynamoDB » API 参考 » 数据类型 » Amazon DynamoDB 流 » 记录 记录

我可以像下面那样做吗?但我怎么知道它更新图标而不是其他属性,如帐户或用户?

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 个对象并查找您感兴趣的字段中的更改。