(地形版本:0.11.3)
我希望能够运行Terraform计划/应用程序而不必销毁实例并使用新的AMI。
在我的main.tf中,我有:
resource "aws_instance" "ec2-server" {
ami = "${local.ami.id}"
instance_type = "t2.medium"
....#blah
lifecycle {
ignore_changes = ["ami"]
}
}
运行计划时,它表明terraform要使用新的ami重建实例。
output:
id: = "i-0123456abc" => <computed> (forces new resource)
ami = "ami-0123456" => "ami-987654abc" (forces new resource)
....
我该如何解决?
答案 0 :(得分:0)
如果更改ami,将强制重新创建。这是预期的行为。
@ydaetskcoR(https://stackoverflow.com/users/2291321/ydaetskcor)在这里有非常详细的答案:
AWS on Terraform - How to avoid 'forces new resource'
您应该看一下他们在解释如何规避破坏(零停机时间)以及行为背后的原因。