如何解决如何在 AWS 代码部署之外更新 AWS Fargate 服务以更改所需的任务数
在设置 AWS 代码部署以部署 AWS 服务时,我们必须提供 2 个目标群体 TargetGroupBlue 和 TargetGroupGreen。
在 cloudformation 模板中,我们在将服务链接到负载均衡器时使用 TargetGroupBlue。 TargetGroupGreen 仅供 AWS 在代码部署期间使用。
第 1 步:我们执行 create stack 命令以创建服务和负载均衡器。我们现在有一个可行的服务。流量通过 TargetGroupBlue 路由。
第 2 步:然后使用代码部署进行另一次部署,完成后将目标组交换为 TargetGroupGreen。
第 3 步:现在我们需要更新服务中所需的任务计数,因此请使用 cloudformation update stack 命令。这失败是因为目标组是 TargetGroupGreen(因为代码部署在步骤 2 中更改了它)并且云形成模板已使用 TargetGroupBlue 将服务链接到负载均衡器。
解决方法可以是在偶数版本中进行代码部署之外的所有与服务相关的更新(因此必须始终进行两次代码部署,以便我们知道流量始终路由 TargetGroupBlue)
这是我们应该通过 cloudformation 和 Code Deploy 处理服务更新的方式吗? 请帮助解决这个问题。
解决方法
尽管 AWS 提供了许多很酷的方法来使用 CodeDeploy 或 CloudFormation 进行 BlueGreen 部署,但它确实很糟糕。
他们建议的解决方法是在 cloudformation 中使用 Custom Resources,这实际上会触发 lambda 函数来更新服务,从而欺骗 cloudformation 堆栈更新。 Sample。 但是没有合适的样本可以做到这一点,因此需要花费大量时间才能使其按您需要的方式工作。
此外,由于 LB 无法共享,因此带有钩子的 cloudforamtion 对于更大的项目并不真正适用。
这是公开票,请帮忙竖起大拇指,以便 AWS 在其路线图中优先考虑这一点。 https://github.com/aws-cloudformation/aws-cloudformation-coverage-roadmap/issues/483
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。