Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 地形强制破坏/添加ASG,而不是依赖项更改_Amazon Web Services_Terraform - Fatal编程技术网

Amazon web services 地形强制破坏/添加ASG,而不是依赖项更改

Amazon web services 地形强制破坏/添加ASG,而不是依赖项更改,amazon-web-services,terraform,Amazon Web Services,Terraform,例如,要强制销毁自动缩放组并添加新组,可以在自动缩放组名称中插入依赖项,如下面的回答所述: 但是,如果您不想更改名称,那么这将不起作用 有没有办法在不更改名称的情况下强制销毁/添加自动缩放组 是否有一种通用的方法来强制地形破坏/添加,如强制破坏/添加或污染变体的取决于?目前没有任何方法可以强制地形重新创建ASG,除非更改其强制创建新资源的一个属性。如您所见,名称是人们通常使用的名称 更改名称的好处是,可以使用如下的create\u before\u destroy生命周期模式: lifecycl

例如,要强制销毁自动缩放组并添加新组,可以在自动缩放组名称中插入依赖项,如下面的回答所述:

但是,如果您不想更改名称,那么这将不起作用

有没有办法在不更改名称的情况下强制销毁/添加自动缩放组


是否有一种通用的方法来强制地形破坏/添加,如强制破坏/添加或污染变体的
取决于

目前没有任何方法可以强制地形重新创建ASG,除非更改其强制创建新资源的一个属性。如您所见,
名称
是人们通常使用的名称

更改名称的好处是,可以使用如下的
create\u before\u destroy
生命周期模式:

lifecycle {
  create_before_destroy = true
}
在这种情况下,Terraform将首先创建新的ASG,等待它成功初始化,然后才销毁旧的ASG。如果不更改名称,这将是不可能的,因为否则两个ASG的名称将相互冲突

请注意,可以通过在名称中包含需要更换ASG时更改的内容来避免手动指定名称。例如,一个常见的选择是包含AMI ID,假设已经通过变量插值填充了该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}"

  # ...
}

我想不出Terraform自动执行此操作的方法,但有什么理由不想更改ASG的名称吗?我很高兴使用LC的名称前缀,然后让它生成随机性,这样您就可以得到一个新名称,但对于识别LC和ASG的用途仍然很有用。