对于相同的一组EC2实例,我有两个部署组:一个是就地部署(例如针对次要意义的“热”修复),另一个是蓝/绿部署(例如,希望保证我正在运行的应用程序能够在新configuration的实例上正常运行)。
这是行之有效的,但我有一个问题:如果我的自动调节组(用于蓝/绿部署组)需要创build一个新的实例,新的EC2服务器将configurationASG标记的部署ID它的CodeDeployProvisioningDeploymentId标签。 这个标签只有在进行蓝/绿部署时才会更新。 由于这些部署发生的频率较低,这意味着我创build的新实例在创build时往往会部署多个旧实例。
我想我需要做的是find一种方法来更新我的ASG上的CodeDeployProvisioningDeploymentId标记的值,当我使用就地部署组来部署更改时,它始终是最新的。 或者,也可以在所有新实例(安装依赖关系等)上运行的供应脚本中,获取最新的部署标识并将其安装在实例中。
有没有人有任何build议或专业提示在这个方向去?
在ASG上更新标签似乎是更好的方法,因为在提供期间的后续lifecyle事件仍然会尝试部署过时的应用程序版本,因此覆盖它。
但是,为什么没有一个默认进行就地部署的部署组,但是如果需要这些重大更改,您可以创build一个蓝绿色部署? 这摆脱了更新CodeDeployProvisioningDeploymentId标记的需要。