给定下面的配置,如果我在基础设施上运行apply命令,如果Amazon推出了一个新版本的AMI,会发生什么?
测试实例将被销毁并重新创建吗?
所以情况
months
我会看到ec2实例的“强制”重新创建吗?这个实例是在N个月前创建的,使用的是“最近”的旧版本的AMI吗?
data "aws_ami" "amazon-linux-2" {
most_recent = true
filter {
name = "owner-alias"
values = ["amazon"]
}
filter {
name = "name"
values = ["amzn2-ami-hvm*"]
}
}
resource "aws_instance" "test" {
depends_on = ["aws_internet_gateway.test"]
ami = "${data.aws_ami.amazon-linux-2.id}"
associate_public_ip_address = true
iam_instance_profile = "${aws_iam_instance_profile.test.id}"
instance_type = "t2.micro"
key_name = "bflad-20180605"
vpc_security_group_ids = ["${aws_security_group.test.id}"]
subnet_id = "${aws_subnet.test.id}"
}带有aws_ami的“most_recent=true”会影响未来的更新吗?
发布于 2020-05-16 02:23:19
是的,正如@ydaetskcoR所说的,您可以查看ignore_changes生命周期,然后它不会重新创建实例。https://www.terraform.io/docs/configuration/resources.html#ignore_changes
发布于 2021-06-18 18:58:09
@ydeatskoR和@sogyals429 429有正确的答案。更具体地说:
resource "aws_instance" "test" {
# ... (all the stuff at the top)
lifecycle {
ignore_changes = [
ami,
]
}
}注意:文档移到:https://www.terraform.io/docs/language/meta-arguments/lifecycle.html#ignore_changes
https://stackoverflow.com/questions/61826847
复制相似问题