基于流的lambda并发执行

问题描述 投票:0回答:1

我有一个python lambda函数,当Dynamodb中有INSERT或UPDATE时会触发它。我们知道,这是一个基于流的调用。如果有1000条记录插入到Dynamodb中,并且我将批量大小设置为1.我的问题是lambda一个接一个地运行每个记录。如何更改它以并行运行所有1000条记录(并发执行)?我应该导入任何额外的python模块,如“来自concurrent.futures导入ThreadPoolExecutor”,而不是我用于我的工作? (我的代码真的很大,可以在这里发布)

python-3.x amazon-web-services concurrency aws-lambda boto3
1个回答
0
投票

您无法控制流处理的并行性。

AWS DynamoDB流将DynamoDB表行分离为分片。每个分片将连续处理(一次一批)。这是为了确保行的“按顺序”处理。

但是,如果您的表有大量写入,则DynamoDB流可能会将分片拆分并重新分割为较小的父分片和子分片。可以并行处理分片。

http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Streams.html

您可以做的最好的控制是从1开始增加“批量大小”。如果您确信可以同时处理数据库更新,那么您可以同时处理您将收到的多个行,批量大小> 1 Lambda函数。

© www.soinside.com 2019 - 2024. All rights reserved.