簡體   English   中英

如何在terraform應用中移動terraform資源

[英]How to move terraform resource in terraform apply

我在 terraform 模塊中定義了自定義資源:

resource "aws_alb_target_group" "whatever" 
{
   ....
}

結果發現whatever不好的名字,我需要更新它。

這樣做的經典方法是登錄到每個環境並執行terraform state mv ,但是我有很多環境,並且沒有自動執行此類操作。

如何在不手動移動 state 的情況下更改資源名稱(僅通過編輯 terraform 模塊和應用計划)?

根據問題中的解釋,我猜你最好的選擇是使用moved block [1]。 因此,例如,在您的情況下將是:

resource "aws_alb_target_group" "a_much_better_whatever" 
{
   ....
}

moved {
  from = aws_alb_target_group.whatever
  to   = aws_alb_target_group.a_much_better_whatever
}

編輯:正如@Matt Schuchard 指出的那樣, moved的塊僅適用於 Terraform 版本>=1.1.0

編輯 2:根據@Martin Atkins 的評論,將資源名稱更改為移動到而不是.


[1] https://www.terraform.io/language/modules/develop/refactoring#moved-block-syntax

我處於同樣的情況。

我的計划是在Terraform新建資源組,應用它,將Azure入口的資源移動到新的資源組,然后做terraform state mv把terraform的資源移動。可以,如果你資源多這很無聊……但我想我不會以這種方式剎車。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM