6

我们已经为使用 Terraform 的项目设置了基础设施,包括代码部署、ALB 和自动缩放组。到目前为止,我们正在进行就地部署。但现在我们正在尝试切换到蓝/绿部署。由于 CodeDeploy 蓝/绿部署会在成功部署时替换整个自动缩放组,因此 Terraform 状态文件中的旧自动缩放组状态将变得陈旧,并且不会反映 CodeDeploy 服务添加的新自动缩放组。有什么已知的方法可以克服这个问题吗?

4

2 回答 2

0

根据您触发 Code Deploy 部署的方式,您可以在部署脚本中将Terraform 导入作为部署后挂钩运行,以更新 Terraform 状态以指向新的自动缩放组。您需要通过众多客户端库之一或CLI以某种方式获取新 ASG 的名称

terraform import aws_autoscaling_group.some_asg_identifier name-of-your-replacement-asg
于 2018-07-31T04:01:14.390 回答
0

您可以使用

lifecycle {
  ignore_changes = [autoscaling_groups]
}

aws_codedeploy_deployment_group.

您还必须将 设置autoscaling_groups[]aws_codedeploy_deployment_group因为当 CodeDeploy 部署新的绿色环境时,新创建的自动缩放组将是不同的(由 CodeDeploy 创建)。

因此,上面的代码将忽略自动缩放组删除/创建所发生的更改。这是因为一旦实施蓝绿部署,CodeDeploy 就会控制自动缩放组的创建。

于 2021-05-17T17:56:11.367 回答