我是 AWS 新手,想询问有关 Amazon SQS 和 AWS SDK 的问题。据我了解,SQS 具有可见性超时功能,在发出
ReceiveMessage
请求调用后,消息将被隐藏,并且在指定时间内无法接收。
但是如果我想在消费者应用程序处理消息后从队列中删除消息怎么办?我是否需要提出
DeleteMessage
请求,或者是否存在我不知道的其他方法,因为据我了解,SQS 是按请求数量计费的,所以我需要同时支付 ReceiveMessage
和 DeleteMessage
请求消费和处理消息?
您必须提出
DeleteMessage
请求。 SQS 没有其他方法可以知道您已成功处理消息。唯一真正的替代方案是,如果您在具有 SQS 事件触发器集成的 AWS Lambda 上运行代码,此时 Lambda 只会为您进行这些 SQS API 调用。
来自 SQS 定价页面:
API 操作 |每个 Amazon SQS 操作都算作一个请求。
所以,是的,在您使用了每月收到的前 100 万个免费请求后,您显然需要为每个请求付费。