来自同一表的多个DynamoDB流被同一Lambda函数占用

问题描述

我有一个Lambda函数,可将DynamoDB流消息推送到SNS。如果我将批量大小设为10,是否可以合并两个不同流的记录?

例如:Stream1有2个对象的数组,Stream2也有2个对象的数组。如果我将批处理大小设置为10,lambda将创建2个批处理(每个流一个),或者将两个流的对象合并并将它们放在单个批处理中。假设两个流同时到达Lambda。

解决方法

来自DynamoDB Streams and AWS Lambda Triggers - Amazon DynamoDB

如果在表上启用DynamoDB流,则可以将流Amazon资源名称(ARN)与您编写的AWS Lambda函数相关联。修改表中的项目后,新记录立即出现在表的流中。 AWS Lambda轮询流并在检测到新的流记录时同步调用您的Lambda函数。

因此,Lambda函数仅从单个DynamoDB流中检索消息。如果将批处理大小配置为检索多个记录,则将从同一流中检索所有这些记录