DevOps課程-IaC with Terraform 5

Change & Destroy Terraform Resource

ZONGRU Li
Feb 10, 2022

前一篇透過Terraform Code完成建立了以下紅框處的Resource:

如上圖可以看到左邊的Name位置都是空的

Change:

若想要將名稱Name填入到由TerraformResource

可以透過tags也就是AWS的key-value pairs:

則可以將Code改為以下(增加紅框處的Code):

並執行:

terraform apply

確認項目沒有問題就yes:

然後到AWS的網頁介面上刷新看到:

其中例如單看vpc的部分:

同理,其中一個新建的subnet:

若想移除上面加的屬性,就直接改掉:

直接改為:

並執行:

terraform apply

確認可以就跑下去yes:

然後看到AWS網頁:

Destroy:

若想把某個Terraform建立的Resource做移除,有兩種方式:

1.直接移除Teraform Code上的Resource並執行apply指令:

此時執行apply指令看到plan:

2.另一個方式是使用destroy指令:

先還原剛剛的Code為如下:

執行方式如下:

#執行指令如下:
terraform destroy -target {ResourceType}.{ResourceName}
#以上面情況就是:
terraform destroy -target aws_subnet.dev-subnet-2

實際執行如下:

一樣確認yes:

然後到AWS網站確認:

Namesubnet就剩一個了!

當前的完整Code如下:

可以看到我沒有真的移除最下面的subnet

至於到底該選用哪一種方式呢?

講師建議使用的是 →terraform apply

因為若是用destroy指令,指定到target目標Resource移除

這時候會跟Terraform Code內容呈現不一致的狀況!

所以最好是使用apply指令,以確保實際狀態與Terraform Code內容相同!

並且IaC概念 →Code本當就要顯示當前InfraStructure的狀態!

參考課程reference

--

--

ZONGRU Li
ZONGRU Li

Written by ZONGRU Li

2022/11/17 開源部分個人筆記給LINE "Java程式語言討論區"社群,希望能對社群的技術學習做一點點貢獻.(掩面....記得退訂閱!

No responses yet