共用方式為


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

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

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

使用生命週期保護由 Terraform 管理的資源

為了避免任何包含動態資源的 Azure 資源遺失資料,您應該在 Terraform 組態檔中使用prevent_destroy生命週期引數。 例如:

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 輸出。

下一步