How to use DynamoDBStreamEvent Trigger Lambda when only update certain attribute

Question:

I use serverless framework to deploy cloudFormation.
I want to trigger lambda to deleteObject on my S3 bucket after I update my DynamoDB Table with certain attribute, eg. my table has account, user, icon, I only want when I update icon, it trigger Lambda to delete my iconObject on S3 bucket.

As I read the documentation on AWS, it seems the eventName of dynamoDB stream Event only have three status, REMOVE, MODIFY, INSERT.


AWS Documentation » Amazon DynamoDB » API Reference » Data Types » Amazon DynamoDB Streams » Record
Record

Could I do as below? But how do I know it update icon instead other attribute like account or user?

Answer:

You are on the right track. If the DynamoDB StreamViewType is set to NEW_AND_OLD_IMAGES then when record.eventName === 'MODIFY', record.dynamodb.NewImage will contain the updated version of the item and record.dynamodb.OldImage will contain what the item was before the update. You could then inspect the 2 objects and look for changes in the fields you are interested in.

Leave a Reply