如何针对任何读取冻结 SQS 队列?

Bra*_*don 2 amazon-sqs amazon-web-services

我有一个 SQS 队列(标准,不是 FIFO),我在长时间运行的进程中用作多个工作人员的任务队列。

我正在尝试添加一个“终止开关”,它会暂时阻止我的工作人员接收/处理任何消息。

我不想删除消息或阻止任何新消息进入队列,只需停止任何阅读器,直到我再次切换终止开关。

这可能与SDK有关吗?还是有权限?

Dan*_*ell 5

我不知道 sqs 暂停按钮,而且我没有看到任何看起来很有希望的 sqs API 调用。

您可以从允许读者阅读的 iam 策略中删除访问权限。

您可以在网络级别删除对 sqs 公共 ip 的访问权限。

但我讨厌那些解决方案;它们用成功模糊了失败场景,并且实际上并不比在应用程序中进行编排更优雅或更方便。

如果建议我的工程师为此使用功能标志,请在 dynamo、consul 或其他一些一致的键值存储中使用。对我来说,比在删除权限或网络访问权限时允许所有读取连续失败更有意义