每个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并发限制
解决方案尝试:我唯一的想法是通过克隆相同的lambda函数来创建几个不同的lambda并发限制。然后,如果客户希望对给定队列施加“14lambda并发性”的限制,我只需要create_event_sourcing()
和lambda-function-hard-limit-at-14
。如果用户想要缩小规模,我会使用lambda-function-hard-limit-at-3
来update_event_sourcing()
缺点是我将手动创建重复的lambda函数…大约20次
目前没有回答
相关问题 更多 >
编程相关推荐