觀點 · 資訊分享
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 provider v5 已穩定,並推出 tf-migrate 工具,自動幫你把 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;未支援的資源要依官方升級指南手動遷移。
接著讀
全部觀點 →Cloudflare Pipelines 與 R2 Data Catalog 支援 Terraform:4 個新資源,把整條資料管線寫成程式碼Cloudflare 的 Terraform provider v5.19.0 新增 4 個資源,讓你用程式碼定義 R2 Data Catalog、資料串流、輸出目的地與用 SQL 串起它們的管線。串流資料寫進 R2 的 Iceberg 資料表,也能版本控管。閱讀 →Cloudflare 為 Brotli 漏洞緊急上架 WAF 規則:預設只記錄不攔截,上線前先檢查你的覆寫設定Brotli 壓縮函式庫爆出 CVE-2026-111497 後,Cloudflare 在 10 月 25 日為 Managed Ruleset 緊急加了兩條規則,預設只記錄、不攔截。如果你曾把整組規則改成封鎖,新規則上線就會直接擋下符合的請求。閱讀 →Cloudflare Tunnel 新增網址正規化:比對規則前先把網址整理乾淨,2027 年 1 月 25 日起預設開啟cloudflared 2026.10.0 起,Tunnel 可以在比對 ingress 規則前先整理網址:還原 ../、合併重複斜線、轉換反斜線。官方說這能讓需要 Access 驗證的規則更安全,目前預設關閉,2027 年起新版預設開啟。閱讀 →