in design-patterns/ddbreplica_lambda.py [0:0]
def _lambda_handler(event, context):
dynamodb = boto3.resource(**boto_args)
dynamodb_table = dynamodb.Table('logfile_replica')
ddb_deserializer = StreamTypeDeserializer()
records = event['Records']
for record in records:
ddb = record['dynamodb']
event_name = record['eventName'].upper() # INSERT, MODIFY, REMOVE
if (event_name == 'INSERT') or (event_name == 'MODIFY'):
if 'NewImage' not in ddb:
print ('Cannot process stream if it does not contain NewImage')
continue
doc_fields = ddb_deserializer.deserialize({'M': ddb['NewImage']})
item = dynamodb_table.put_item(Item=doc_fields)