Вы можете определенно сделать это с DynamoDB, создав триггер с типом потока New и Old Images, но DynamoDB не проверит запись за вас. Он просто отправит вам записи, которые были обновлены, новые, старые или оба. Возможно, у вас есть запись с такими же полями. Это не было бы идеально ... поэтому вам нужно защищаться от кода, помещаемого в таблицу, чтобы убедиться, что ничто не использует put_item, который перезаписывает запись с теми же данными. Ниже приведен пример события (фокус на новое и старое изображение, идентификатор события и версии и т. Д. Это просто фиктивные данные).
"Records": [
{
"eventID": "2",
"eventVersion": "1.0",
"dynamodb": {
"OldImage": {
"id": {
"N": "1"
},
"name": {
"S": "Steve"
},
"photo": {
"S": "photo.jpg"
},
"team": {
"S": "blue"
}
},
"SequenceNumber": "222",
"Keys": {
"id": {
"N": "1"
}
},
"SizeBytes": 59,
"NewImage": {
"id": {
"N": "1"
},
"name": {
"S": "Steve"
},
"photo": {
"S": "photo.jpg"
},
"team": {
"S": "green"
}
},
"StreamViewType": "NEW_AND_OLD_IMAGES"
},
"awsRegion": "eu-west-1",
"eventName": "MODIFY",
"eventSourceARN": "arn:aws:dynamodb:eu-west-1:account-id:table/ExampleTableWithStream/stream/2015-06-27T00:48:05.899",
"eventSource": "aws:dynamodb"
}
]
}```