目前,我使用AWS SQS作为触发器来调用我的AWS Lambda函数。
我想实现长轮询以减少成本,因为我已经使用了月度免费套餐的70%,其中大部分是由于空接收。
我尝试通过更改队列属性ReceiveMessageWaitTimeSeconds
到20秒
来设置长轮询:
![Empty Receives graph shows the same trend even after setting long polling](https://istack.dev59.com/dOjjI.webp)
WaitTimeSeconds
优先于队列属性ReceiveMessageWaitTimeSeconds
引用:短轮询发生在以下两种情况下,当ReceiveMessage请求的WaitTimeSeconds参数设置为0时:
1. ReceiveMessage调用将WaitTimeSeconds设置为0。
2. ReceiveMessage调用没有设置WaitTimeSeconds,但队列属性ReceiveMessageWaitTimeSeconds设置为0。
请注意:
对于ReceiveMessage操作的WaitTimeSeconds参数,设置在1到20之间的值优先于为队列属性ReceiveMessageWaitTimeSeconds设置的任何值。
由于AWS Lambda正在接收SQS请求,我认为无法配置
WaitTimeSeconds
。为什么我的长轮询配置在这种情况下不起作用?我是否理解有误或者配置错误?
谢谢!