我已经用Terraform 0.12.6创建了资源。 但是,如果不对代码进行任何更改并执行"terraform apply",则该过程希望销毁现有的EC2并重建它们。 我想知道它为什么要这样做以及下面不正确的地方。
resource "aws_instance" "web_ui" {
count = 2
ami = data.aws_ami.ami.id
instance_type = var.type_m5lg
associate_public_ip_address = false
key_name = var.key_name
security_groups = [var.vpc_security_group_ids, var.sg_devops, var.sg_common]
subnet_id = (data.aws_subnet.subnetid)[count.index].id
root_block_device {
delete_on_termination = true
}
ebs_block_device {
device_name = "/dev/sdb"
volume_size = "200"
volume_type = "gp2"
delete_on_termination = true
}
tags = "${merge(
local.common_tags,
map(
"Name", "${var.name}-${var.prog}-${var.env}${count.index + 1}-${var.ec2_name_web}-use1.xyz.com"
)
)}"
}
更改security_groups= [var.vpc_security_group_ids、var.sg_devops、var.sg_common]TO vpc_security_group_ids= [var.vpc_security_group_ids、var.sg_devops、var.sg_common] 修复了该问题。
基于 @stack72 hashicorp/terraform#7853 的评论