禁用 ECS 应用程序不从 aws sqs 读取消息

问题描述 投票:0回答:1

我们通过引入 aws sqs(简单队列服务)在我们的应用程序中引入了异步处理。我们使用蓝/绿部署模型,当我们进行新部署时,我们将其部署到非活动区域(蓝色/绿色),并在验证非活动区域后,启用它并使其处于活动生产状态。由于我们有 sqs,因此我们需要确保在进行新部署时,新的非活动部署不会从队列中读取消息,直到它变为活动状态。同时,我们还希望禁用非活动(蓝色/绿色)以不从队列中读取消息。我不知道有任何内置的 aws 或 sqs 功能。有人对如何实现这种行为有任何建议吗?

感谢您的帮助!

amazon-web-services cluster-computing amazon-ecs amazon-sqs
1个回答
0
投票

我从你的问题中了解到,SQS 队列是静态的,因为在整个蓝/绿部署中保持不变,并且你希望能够完成新的部署,然后在某种初始测试后以某种方式触发切换/验证完成。

除了 IAM 之外,我不知道有什么原生 AWS 功能可以支持此功能。如果您为蓝色和绿色创建了单独的角色,您可以撤销从 SQS 读取的权限,然后将该权限授予其他部署。

其他选项基本上是这个主题的变体,即应用程序查阅其他一些数据以确定它是否应该为队列提供服务:

  • 如上所述使用IAM来控制切换
  • 使用数据库字段或参数存储值来控制切换并修改代码来检查它。
© www.soinside.com 2019 - 2024. All rights reserved.