我尝试通过复制AutoScalingGroup来设置蓝色/绿色部署,但是随着CodeDeploy创建新副本并删除原始副本,这使CloudFormation堆栈脱离了其原始资源。我从另一篇文章(https://forums.aws.amazon.com/thread.jspa?messageID=861085)了解到AWS正在为此进行改进,但是现在我正在尝试以下解决方法。任何想法都会很有帮助。
CloudFormation创建以下内容:
CloudFormation完成后,我在控制台中手动执行以下操作:
关于如何使用CloudFormation实施一组资源以简化蓝绿色部署的任何想法,即单击CodeDeploy,CloudFormation资源仍然保持不变?
答案 0 :(得分:0)
关于您描述的最初问题,您是否尝试过“健康检查宽限期”?这样可以防止您在实例到达目标组时通过运行状况检查失败描述的问题。
另一种方法(有很多缺点)是调整CloudFormation模板以补偿CodeDeploy在蓝绿色部署中替换ASG时的行为。
这将为您提供您希望通过CodeDeploy进行的一键式部署,但是请注意,这会带来一些费用:
我对这个部门的CodeDeploy不太满意。我希望看到它们以与ASG相同的方式工作,而ASG可以在新的LaunchTemplate版本的应用程序上自行替换。如果您感到有些野心勃勃,则可以通过将步进功能与ASG实例生命周期挂钩一起使用来模仿此行为。有时间后,我就会考虑使用这种解决方案。