我正在将 Terraform 与 AWS 结合使用。目前在我的设置中,我有一个与 Code Deploy 结合使用的 Auto Scaling 组。当我部署到 Code Deploy 时,它会复制初始 ASG 并将其删除。问题是,当我运行“terraform plan/apply”时,它会重新创建原始 ASG,并重新指向我的 Code Deploy 组。
显然,这会破坏一切。有没有办法告诉 Terraform 不要管我的 ASG/CodeDeploy 内容?我会注释掉包含这些项目的模块,但我担心 Terraform 会查看当前状态,发现缺少某些组件,并尝试删除它们。
任何帮助是极大的赞赏。
答案1
希望这能被标记为已回答,@mblakele 的评论是该问题的有效解决方案。
ignore_changes 生命周期规则可以影响资源的状态执行,使得 Terraform 仅在 TF 配置没有改变时才创建资源并销毁它。
可以将其添加到给定的资源块以影响上面描述的行为:
lifecycle {
ignore_changes = all
}
销毁此资源仍可能会产生错误(它不存在),但如果发生这种情况,可以将其作为接触点来处理。