我们使用Terraform为项目设置了基础架构,包括代码部署,ALB和自动扩展组。到目前为止,我们正在进行就地部署。但现在我们正试图切换到Blue / Green部署。 由于CodeDeploy Blue / Green部署会在成功部署时替换整个自动缩放组,因此Terraform状态文件中旧的Autoscaling组状态将变得陈旧,并且不会反映由CodeDeploy服务添加的新Autoscaling组。 有没有任何已知的方法来克服这个问题?
答案 0 :(得分:0)
根据触发代码部署部署的方式,可以在部署脚本中运行Terraform import作为部署后挂钩,以更新Terraform状态以指向新的自动缩放组。您可能需要通过许多客户端库之一或CLI
来获取新ASG的名称。terraform import aws_autoscaling_group.some_asg_identifier name-of-your-replacement-asg
答案 1 :(得分:0)
你可以使用
lifecycle {
ignore_changes = [autoscaling_groups]
}
在 aws_codedeploy_deployment_group
中。
您还必须将 autoscaling_groups
中的 []
设置为 aws_codedeploy_deployment_group
,因为当 CodeDeploy 部署新的绿色时,新创建的自动缩放组将是不同的(由 CodeDeploy 创建)环境。
因此,上述代码将忽略自动缩放组删除/创建时发生的更改。这是因为一旦实施蓝绿部署,CodeDeploy 就会控制自动缩放组的创建。