2017-04-04 4 views
2

たとえば、自動スケーリンググループを強制的に破棄して新規に追加するには、この回答に記載されているように、自動スケーリンググループ名に依存関係を補間できます。 https://stackoverflow.com/a/39347640/1007353依存関係変更の代わりにASGを追加する

ただし、名前を変更したくない場合は、これは機能しません。

名前を変更せずに自動スケーリンググループを強制的に破棄/追加する方法はありますか?

terraformにdestory/addを強制する一般的な方法がありますか?たとえば、force destory/addまたはtaintバリアントdepends_onのようなものですか?

+0

私ができる:一般的な選択は、例えば、これは既に変数補間から移入されていると仮定すると、AMI IDを含むことであり、したがってそれは一度名およびAMIの両方に補間することができますTerraformが自動的にこれを行う方法を考えてはいけませんが、ASGの名前を変更したくない理由がありますか?私はLCの名前接頭辞を使用してかなり幸せだったし、その後、それはあなたが新しい名前を取得し、LCとASGが何であるかを識別するために有用なので、それ以降のランダム性を生成している。 – ydaetskcoR

答えて

1

現在、新しいリソースを強制的に作成する属性の変更を除いて、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}" 

    # ... 
} 
関連する問題