觀點 · 資訊分享

Cloudflare 推出 tf-migrate:Terraform provider 升 v5 能自動改名並先預覽

Cloudflare 宣布 Terraform provider v5 已穩定可上正式環境,並推出命令列工具 tf-migrate,自動改寫資源名稱與欄位、產生 moved 區塊、更新跨檔案引用,還有 dry-run 預覽模式。

發布
2026-04-24
篇幅
約 3 分鐘 · 1,440 字
結構
7 節 + 3 題常見問題
標籤
#Cloudflare#Terraform#tf-migrate#基礎設施即程式碼
Cloudflare 推出 tf-migrate:Terraform provider 升 v5 能自動改名並先預覽

一句話看懂:Cloudflare 的 Terraform provider v5 已穩定,並推出 tf-migrate 工具,自動幫你把 v4 的設定改寫成 v5,還能先預覽。

Cloudflare 推出 tf-migrate 遷移工具資訊圖卡:Terraform provider 從 v4 升 v5,改名與搬狀態交給工具自動做

先用白話講:這是在解決什麼麻煩?

想像你要搬家,搬到新家後所有箱子上的標籤、物品名稱都換了新規則。一個一個手動改標籤很累,漏改一個,東西還可能被當成「新東西」重新買一份。

Terraform 管雲端設定也是這樣:Cloudflare 的 provider 從 v4 升到 v5,很多資源的名稱與欄位都改了;手動改不但煩,還有可能讓 Terraform 以為舊資源不見了,而去「刪掉再重建」。tf-migrate 就是這次搬家的自動化工具。

發生什麼事

Cloudflare 在 2026 年 4 月 24 日宣布:

  • Terraform Provider v5 穩定、可用於正式環境,並持續更新,官方鼓勵所有使用者遷移
  • 推出命令列工具 tf-migrate;官方說 Cloudflare 自己的基礎設施也是用同一個工具遷移的

tf-migrate 做什麼?

功能 說明
資源改名 例如 cloudflare_record 改為 cloudflare_dns_record,另有 40 多種改名
欄位轉換 例如 DNS 記錄的 value 改為 content,並重整巢狀區塊
產生 moved 區塊 避免資源被替換,目標是零停機遷移(需 Terraform 1.8 以上)
跨檔案引用更新 整份設定內所有對舊名稱的引用一起改
Dry-run 模式 先預覽所有變更再套用

再搭配 v5.19 起內建的自動狀態升級器,官方說可大幅減少過去讓 v5 遷移令人卻步的手動工作與風險。

給開發者的技術細節

  • tf-migrate 直接處理設定檔,狀態(state)由內建的升級器處理
  • 支援範圍有限:目前涵蓋最常用的資源,並依使用頻率逐步擴充;完整清單見官方的 v5 Stabilization Tracker
  • 還不支援的資源,要照官方 v5 升級指南手動處理(改名、欄位與狀態遷移步驟都有說明)
  • 官方說過去一個半月以 Beta 版測試,Beta 的變更紀錄可在 tf-migrate 的 releases 頁面查看

我的看法

用 Terraform 管 Cloudflare 的人,最怕的是升級後 plan 顯示一大堆「將被刪除再建立」。DNS、存取規則這類資源一旦被重建,網站可能會短暫連不上。這次工具有 dry-run 與 moved 區塊,思路是對的。

不過我會保守一點:先在測試用的工作區或備份過的狀態檔上跑一遍,確認 plan 沒有意外的刪除,再套用到正式環境。如果你的設定裡有未被支援的資源,要預留手動遷移的時間。

名詞小辭典

  • Terraform:用程式碼描述並建立雲端資源的工具(基礎設施即程式碼)。
  • Provider:Terraform 與特定服務溝通的外掛。
  • State(狀態):Terraform 記錄目前管理哪些資源的檔案。
  • moved 區塊:告訴 Terraform「這個資源只是改名,不是新資源」的設定語法。

資料來源

常見問題

Terraform provider 是什麼?
Terraform 是用程式碼描述並管理雲端資源的工具;provider 是它跟特定服務(這裡是 Cloudflare)溝通的外掛。v4、v5 是這個外掛的大版本。
tf-migrate 會幫我做哪些事?
自動重新命名資源類型(例如 cloudflare_record 改為 cloudflare_dns_record)、更新欄位名稱(例如 value 改為 content)、產生 Terraform 1.8 以上的 moved 區塊避免資源被重建、更新跨檔案引用,並提供 dry-run 預覽。
所有資源都能自動遷移嗎?
不行。官方說目前支援最常用的資源並持續擴充,支援狀態請看 v5 Stabilization Tracker;未支援的資源要依官方升級指南手動遷移。
LINE