AWS Lambda如何处理并发?

时间:2019-02-08 16:16:24

标签: aws-lambda

我有一个lambda,它查询数据库的计数,然后将代表另一个lambda进行查询的偏移量的数字提交给SQS队列。第二个lambda由推送到队列触发。如果我将并发设置为10,是否意味着lambda会像线程池一样工作,并将继续重新启动,直到队列为空?

我正在考虑的事情的准确图像: lambda_flow_char

示例 Lambda A查询数据库,发现表中有10000个项目,因此它向队列中提交100条消息,每100条消息中从0到10000的消息。

Lambda B的并发性为10,并由放入队列中触发,每个Lambda B进行拉动,执行一些工作,然后将结果放入其他位置,并在Lambda完成工作后执行任何操作。完成所有任务后,还剩下90个任务,是否又要启动10个任务池,或者一旦完成一个lambda任务,就会取代它?

1 个答案:

答案 0 :(得分:3)

由于Lambda B的并行性为10,因此任何时候最多可以运行10个Lambda函数。

一个Lambda函数完成后,将触发另一个Lambda函数,直到SQS队列中没有剩余任何东西为止。

AWS Lambda可能会创建10个Lambda容器,并且每个容器将在以后的调用中重复使用。

请参阅:Understanding Container Reuse in AWS Lambda | AWS Compute Blog