共用方式為


在 Terraform 管理之外更新由 Terraform 管理的 Azure 資源

雖然不建議您在 Terraform 外部修改受 Terraform 管理的資源,因為數據遺失的風險,但某些功能會要求您這麼做。 由於風險,您必須使用概述的步驟來正確更新資源。

由 Terraform 管理的資源會將其狀態儲存在位於 Terraform Cloud 或本機 Terraform 模組中的 terraform.tfstate。 狀態包含與 Terraform 相關的遠端資源的所有屬性。 當 Terraform 管理的資源在 Terraform 外部修改時,Terraform 狀態與遠端資源的屬性不符。 為了解決不相符的問題,Terraform 可能會刪除並重新建立遠端資源,從而導致資料遺失。

使用生命週期設定保護 Terraform 受控資源

若要防止任何包含動態資源的 Azure 資源遺失數據,您應該使用 prevent_destroy Terraform 組態檔中的生命週期自變數。 例如:

resource "azure_netapp_volume" "example {
    lifecycle{
        prevent_destroy = true
    }

}

在 Terraform 外部修改 Terraform 管理的資源

下列指示是在 Terraform 外部更新受 Terraform 管理之資源所需步驟的高階概觀。

  1. 流覽至 Terraform 模組的組態檔。 組態檔的擴展名為 .tf.tf.json
  2. 在由 Terraform 管理的磁碟區組態檔 (main.tf) 中,找出生命週期組態區塊。 使用 ignore_changes = <property>修改 區塊,並指派您正在使用之功能的適當屬性值。 如果沒有生命週期組態區塊存在,請加以新增:
    lifecycle {
        ignore_changes = <property>
    }
    
  3. 對 Azure NetApp Files 磁碟區進行所需的修改。
  4. 執行 terraform plan,以確認不會對您的磁碟區進行任何變更。 CLI 輸出應該會顯示:No changes. Your infrastructure matches the configuration.

    備註

    terraform plan命令會使用遠端資源的變更來建立計劃檔案,讓您在套用任何變更之前,確保資源的安全性。

  5. 執行 terraform apply 以套用變更。 您應該會看到與上一個步驟相同的 CLI 輸出。

後續步驟