例如,要强制销毁自动缩放组并添加新的,您可以将依赖项插入到自动缩放组名称中,如以下答案所述:https://stackoverflow.com/a/39347640/1007353
但是,如果您不想更改名称,那么这将不起作用。
有没有办法在不更改名称的情况下强制销毁/添加自动缩放组?
是否有一种通用方法可以强制 terraform 销毁/添加,例如强制销毁/添加或 depends_on
的污点变体?
最佳答案
目前没有办法强制 Terraform 重新创建 ASG,除非更改其属性之一以强制创建新资源。如您所见,名称
是人们通常使用的名称。
更改名称的优点是可以使用 create_before_destroy
生命周期模式,如下所示:
lifecycle {
create_before_destroy = true
}
在这种情况下,Terraform 将首先创建新的 ASG,等待其成功初始化,然后才销毁旧的 ASG。如果不更改名称,这是不可能的,否则两个 ASG 的名称将会发生冲突。
请注意,通过在名称中包含需要更换 ASG 时会更改的内容,可以避免手动指定名称。例如,一个常见的选择是包含 AMI ID,假设它已经通过变量插值填充,因此可以立即将其插值到名称和 AMI 中:
resource "aws_launch_configuration" "example" {
name = "example-${var.ami_id}"
image_id = "${var.ami_id}"
# ...
}
resource "aws_autoscaling_group" "example" {
name = "${aws_launch_configuration.example.name}"
launch_configuration = "${aws_launch_configuration.example.name}"
# ...
}
关于amazon-web-services - terraform 强制销毁/ad ASG,而不是依赖项更改进行更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43217228/