amazon-web-services - 如何卡住 SQS 队列以防止任何读取?

标签 amazon-web-services amazon-sqs

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

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

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

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

最佳答案

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

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

您可以在网络级别删除对 sqs 公共(public) ip 的访问。

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

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

关于amazon-web-services - 如何卡住 SQS 队列以防止任何读取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41385901/

相关文章:

amazon-web-services - Amazon SQS DLQ:是否将早于14天的sqs消息移至DLQ

amazon-web-services - 使用 Lambda 事件源映射进行 SQS 批处理

laravel - AWS Beanstalk https 问题

swift - 将自动计时器 PFObject 添加到 Parse.com 类

java - com.amazonaws.services.s3.model.AmazonS3Exception : Forbidden (Service: Amazon S3; Status Code: 403; Error Code: 403 Forbidden; Request ID: XXXXXXXX)

amazon-web-services - SNS 主题未发布到 SQS

python - AWS Lambda 上的单元测试

amazon-web-services - 在亚马逊ec2上安装octave

python - AWS SQS ReceiveMessage 收到的消息少于请求的消息?

amazon-web-services - 试图从 sqs 触发我的 lambda 函数,它正在触发 lambda 但队列中没有消息