免责声明:由于对流,分片等的工作原理了解不足,我可能会误用术语。
我已经设置了一个dynamodb表,以使用流触发lambda函数。管道是:
1)项目已添加到dynamodb
2)Lambda触发了来自添加到dynamodb的新项目的信息
3)Lambda修改dynamodb中的项目
非常重要的是,我需要每个新项来触发一个单独的lambda实例。到目前为止,这一直很好。但是,有时我注意到它会将多个dynamodb插入事件组合到一个流中,因此如果同时创建多个来自不同插入的信息,它将触发我的lambda,而我的lambda函数无法处理。有没有办法解决?强制它为每个新插入触发不同的lambda实例?
下面是一个由具有多个事件的dynamodb流触发的lambda示例。我想要的是下面的记录列表,永远不会发生多个事件。
{'Records': [{'awsRegion': 'eu-west-2',
'dynamodb': {'ApproximateCreationDateTime': 1562924320.0,
'Keys': {'id': {'S': 'fakedata1'}},
'NewImage': {'constraints': {'S': 'fakedata1'},
'id': {'S': 'fakedata'},
'status': {'S': 'RUNNING'}},
'SequenceNumber': '212050800000000001290145608',
'SizeBytes': 310,
'StreamViewType': 'NEW_IMAGE'},
'eventID': '2e0348cfb304f4182cad18d326197031',
'eventName': 'INSERT',
'eventSource': 'aws:dynamodb',
'eventSourceARN': 'arn:aws:dynamodb:eu-west-2:1562924320:table/mylambdafunc/stream/2019-05-28T16:42:58.716',
'eventVersion': '1.1'},
{'awsRegion': 'eu-west-2',
'dynamodb': {'ApproximateCreationDateTime': 1562924328.0,
'Keys': {'id': {'S': 'fakedata2'}},
'NewImage': {'constraints': {'S': 'fakedata2'},
'id': {'S': 'fakedata2'},
'status': {'S': 'RUNNING'}},
'SequenceNumber': '212050900000000001290146992',
'SizeBytes': 214,
'StreamViewType': 'NEW_IMAGE'},
'eventID': '944e6d6776f78051f5b3e0e1af0ad207',
'eventName': 'INSERT',
'eventSource': 'aws:dynamodb',
'eventSourceARN': 'arn:aws:dynamodb:eu-west-2:501873828238:table/mylambdafunc/stream/2019-05-28T16:42:58.716',
'eventVersion': '1.1'},
{'awsRegion': 'eu-west-2',
'dynamodb': {'ApproximateCreationDateTime': 1562924328.0,
'Keys': {'id': {'S': 'fakedata3'}},
'NewImage': {'constraints': {'S': 'fakedata3'},
'id': {'S': 'fakedata3'},
'status': {'S': 'RUNNING'}},
'SequenceNumber': '212051000000000001290147068',
'SizeBytes': 326,
'StreamViewType': 'NEW_IMAGE'},
'eventID': '9f3d5a16390b6afce6f812d48588269e',
'eventName': 'INSERT',
'eventSource': 'aws:dynamodb',
'eventSourceARN': 'arn:aws:dynamodb:eu-west-2:501873828238:table/mylambdafunc/stream/2019-05-28T16:42:58.716',
'eventVersion': '1.1'}]}```