Mus*_*han 4 amazon-sqs amazon-web-services aws-lambda
我有一个AWS Lambda函数,由SQS触发.此功能每天触发约100次,但对SQS队列的请求计数约为每天20.000次.我不明白为什么对SQS提出的请求数量太高.我的期望是对SQS的请求数应与Lambda调用相同.
我的帐户中只有一个Lambda函数和一个SQS队列.
可以与SQS队列的轮询相关吗?我试图从队列配置中更改SQS的轮询间隔,但没有任何改变.另一种可能性是从Lambda函数配置更改轮询间隔.但是,我找不到任何相关参数.
简而言之,我想减少SQS请求的数量,如何在使用SQS调用Lmabda函数时这样做?
使用SQS作为AWS Lambda的事件源时,AWS Lambda会定期轮询配置的SQS队列以获取新消息.虽然官方文档并不清楚,但宣布该功能的博客文章详细介绍:
最初创建并启用SQS事件源映射时,或者在没有流量的时间段之后首次出现消息时,Lambda服务将开始使用五个并行长轮询连接轮询SQS队列.
根据AWS文档,从AWS Lambda到SQS的长轮询的默认持续时间为20秒.
这导致AWS Lambda函数每20秒向SQS发出5次请求,没有显着负载,总计达到每天~21600,接近您所遇到的20000.
虽然增加长轮询持续时间似乎是减少请求数量的简单方法,但这是不可能的,因为AWS Lambda默认使用的20秒已经是SQS队列的最大可能持续时间.当使用它作为AWS Lambda的事件源时,我担心没有简单的方法来减少对SQS的请求.相反,如果另一个事件源(如SNS)也适合您的用例,则值得评估.
| 归档时间: |
|
| 查看次数: |
1061 次 |
| 最近记录: |