現在、新しいリソースを強制的に作成する属性の変更を除いて、TerraformにASGの再作成を強制する方法はありません。 name
は、あなたが見たように、人々が通常使用するものです。
名を変更すると、それはこのようcreate_before_destroy
ライフサイクルモードを使用することが可能になるという利点があります。
lifecycle {
create_before_destroy = true
}
この場合テラフォームは、最初に新しいASGを作成し、それが正常に初期化されるまで待って、とだけでしょう古いASGを破壊する。 2つのASGが競合する名前を持つため、名前を変更しなければこれはできません。
を手動で入力する必要はありません。名前を指定する代わりに、ASGを交換する必要があるときに名前を変更することができます。 「
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}"
# ...
}
私ができる:一般的な選択は、例えば、これは既に変数補間から移入されていると仮定すると、AMI IDを含むことであり、したがってそれは一度名およびAMIの両方に補間することができますTerraformが自動的にこれを行う方法を考えてはいけませんが、ASGの名前を変更したくない理由がありますか?私はLCの名前接頭辞を使用してかなり幸せだったし、その後、それはあなたが新しい名前を取得し、LCとASGが何であるかを識別するために有用なので、それ以降のランダム性を生成している。 – ydaetskcoR