为什么当某些Lambda需要轮询其他AWS时直接由某些AWS调用AWS Lambda处理程序?

时间:2019-07-17 11:11:07

标签: amazon-web-services aws-lambda

为什么要配置一些Amazon Web Services,使其可以使用适当的权限直接调用Lambda处理程序,而对于SQS之类的其他服务,lambda需要重复轮询?为什么我们没有提供将消息添加到SQS后立即调用Lambda的规定,而不是反复轮询?

1 个答案:

答案 0 :(得分:1)

我认为这与缩放有关。

来自Understanding Scaling Behavior - AWS Lambda

  

不基于流的基于轮询的事件源:对于处理Amazon SQS队列的Lambda函数,AWS Lambda将自动缩放队列上的轮询,直到达到最大并发级别为止。每个消息批次都可以视为单个并发单元。 AWS Lambda的自动缩放行为旨在在队列为空时保持较低的轮询成本,同时在频繁使用队列时使您能够实现高吞吐量。

     

最初启用Amazon SQS事件源映射后,Lambda开始对Amazon SQS队列进行长轮询。长轮询通过减少空响应的数量来帮助降低轮询Amazon Simple Queue Service的成本,同时在消息到达时提供最佳的处理延迟。

     

当消息可用时,Lambda最初会启动最多5个函数实例,以同时处理5个批处理。然后,只要您在帐户和功能级别具有并发性,Lambda每分钟最多可以启动60个实例,总共可以启动1000个实例。