如何确保每个SQS队列的lambda并发限制可以具有不同的值?

时间:2019-06-04 02:53:51

标签: python amazon-web-services

每个SQS队列代表客户的“工作”。因此,将lambda并发限制设置为5是没有意义的,因为将有多个客户创建许多SQS队列或“作业”,一次最多可以处理5个lambda函数。

但是,有些支付更多钱的客户希望增加此功能,比如说有20个lambda函数。如何以编程方式保证每个SQS队列的最大lambda并发限制?

这个想法是,当从SQS队列事件源触发lambda函数时。如何确保一组用户最多只能运行5个lambda函数,而另一组用户最多可以运行20个lambda函数?因此,当队列填满时,正在处理的并发消息的最大数量应为5。

如何通过boto3以编程方式确保这一点?

 import boto3
 lada = boto3.client('lambda')
 response=lada.create_event_source_mapping(
                EventSourceArn='jobSpecificQueueArn',
                FunctionName='myLambdaFunction',
                Enabled=True,
                BatchSize=1
 )

此外,如何设置唯一的lambda并发限制 per 队列?

解决方案尝试:我唯一的想法是通过克隆相同的lambda函数来创建几个不同的lambda并发限制。然后,如果客户希望在给定的队列上施加“ 14 lambda并发性”限制,那么我只需要create_event_sourcing()和一个lambda-function-hard-limit-at-14。如果用户想缩小比例,我会用update_event_sourcing() lambda-function-hard-limit-at-3

缺点是我将手动创建重复的lambda函数...大约20次。

0 个答案:

没有答案