AWS SQS为什么请求数量如此之高

时间:2019-11-13 19:36:52

标签: amazon-web-services aws-lambda amazon-sqs

我有一个简单的lambda应用程序,该应用程序目前尚未投入生产,仅用于测试和调试。该功能向SQS发送消息以在外部应用程序上执行CRUD操作。我已将此功能设置为在收到消息时由SQS调用,因此该功能正在发送和接收。

我刚刚收到一封电子邮件,说我已经使用了超过85%的免费SQS请求配额,或者在过去2周中使用了超过850,000个请求。我确定这些请求不是正在发送到队列或未接收到的消息。对于我使用该应用程序的频率,发送/接收的数量必须少于1000。我还使用SQS监视验证了队列中没有任何消息。发送的邮件数量或多或少是我的预期,数量很少。

就像我说的那样,这个应用程序仅由我自己使用,每周进行几天的测试。超过850,000个请求来自何处?

2 个答案:

答案 0 :(得分:2)

Amazon SQS按每百万API调用收费0.40美元。调用包括发送,接收和删除,因此一条消息可能使用3个以上的API调用。

来自AWS Lambda Adds Amazon Simple Queue Service to Supported Event Sources | AWS News Blog

  

此功能没有额外的费用,但是由于Lambda服务一直在长时间轮询SQS队列,因此将以标准SQS定价费率向这些API调用收费。

长轮询耗时20秒,每天进行4320次轮询。相当于两周内60,480,或每月129,600。诚然,如果消息正在流动,情况将会更多,因为只要有消息,就会退出长时间的轮询。

因此,要么队列被大量使用(并且您的0.40美元获得了可观的价值),要么还有其他东西可以生成许多SQS API调用。

答案 1 :(得分:0)

如果您使用相同的功能向SQS发送和从SQS接收,则表示:

Lambda发送消息给SQS-> SQS接收消息-> SQS触发Lambda-> Lambda发送消息给SQS

而且...这是一个无限循环:)