【发布时间】:2018-08-29 05:21:24
【问题描述】:
我有一个 dynamodb 表。每当我向表中添加新项目时,都会触发 lambda 函数,完成某些处理并更新新项目。它工作正常,但我想知道如果一次添加数千个项目会怎样。该函数是否会一次对所有项目执行?还是会排队执行?
【问题讨论】:
标签: amazon-web-services aws-lambda amazon-dynamodb aws-sdk
我有一个 dynamodb 表。每当我向表中添加新项目时,都会触发 lambda 函数,完成某些处理并更新新项目。它工作正常,但我想知道如果一次添加数千个项目会怎样。该函数是否会一次对所有项目执行?还是会排队执行?
【问题讨论】:
标签: amazon-web-services aws-lambda amazon-dynamodb aws-sdk
来自Managing Concurrency,AWS Lambda 官方文档
函数会根据传入请求率自动扩展
因此,这意味着如果请求是并发的,那么为了处理这些请求,同一函数的多个实例将执行。一些请求可能会排队。
也来自相同的文档,
默认情况下,AWS Lambda 将给定区域内所有函数的并发执行总数限制为 1000。
【讨论】:
假设每次执行需要 1 秒或更长时间才能完成,Lambda 有 100 次并行 Lambda 执行。
因此 Lambda 一次可以管理多个执行。
【讨论】:
来自Understanding Scaling Behavior
对于处理 Kinesis 或 DynamoDB 流的 Lambda 函数, 分片数是并发单位
分片数量取决于您的分区键基数。例如,如果你的分区键基数是 2,那么你只有两个分片,你的 lambda 并发是 2。
请记住,您无法显式控制多个分片。 This is a related question
【讨论】: