觀點 · 資訊分享
Cloudflare Pipelines 與 R2 Data Catalog 支援 Terraform:4 個新資源,把整條資料管線寫成程式碼
Cloudflare 的 Terraform provider v5.19.0 新增 4 個資源,讓你用程式碼定義 R2 Data Catalog、資料串流、輸出目的地與用 SQL 串起它們的管線。串流資料寫進 R2 的 Iceberg 資料表,也能版本控管。
- 發布
- 2026-05-04
- 篇幅
- 約 4 分鐘 · 1,701 字
- 結構
- 8 節 + 3 題常見問題
- 標籤

一句話看懂:Cloudflare 的 Terraform provider 新增 4 個資源,讓 Pipelines 與 R2 Data Catalog 能用程式碼定義,整條串流資料管線都可以進版本控管。

先用白話講:這兩個產品在做什麼?
想像你開了一間網路商店,每筆訂單、每次點擊都會產生一筆紀錄,你想把這些紀錄整理後存起來,之後拿來分析。Pipelines 就像一條輸送帶:從入口(HTTP 或 Worker)接收資料,用 SQL 做轉換,再送到出口。R2 Data Catalog 則像倉庫的目錄系統,替存進 R2 的資料表做管理與整理,讓分析工具找得到、查得快。
發生什麼事
5 月 4 日,Cloudflare 在更新日誌宣布:Pipelines 與 R2 Data Catalog 現在可以用 Terraform 建立與管理,需要 Cloudflare Terraform provider v5.19.0。
官方說明這兩個產品的角色:
- Pipelines 透過 Workers 或 HTTP 端點接收串流資料,用 SQL 轉換,並寫進 R2 成為 Apache Iceberg 資料表
- R2 Data Catalog 管理這些 Iceberg 資料表、壓縮,並維持與 R2 SQL、Spark、DuckDB 等查詢引擎的相容
新增的 4 個 Terraform 資源
| 資源 | 用途 |
|---|---|
cloudflare_r2_data_catalog |
在 R2 儲存桶上啟用資料目錄 |
cloudflare_pipeline_stream |
建立串流,用 HTTP 或 Worker 綁定接收事件 |
cloudflare_pipeline_sink |
建立輸出,寫進 R2 Data Catalog 或 R2 |
cloudflare_pipeline |
建立管線,用 SQL 把串流連到輸出 |
給開發者的技術細節
官方的最小範例是建立一個串流、一個 R2 Data Catalog 輸出,再用一條管線串起來。管線本身只有一行 SQL,大致是這個形狀:
resource "cloudflare_pipeline" "my_pipeline" {
account_id = var.cloudflare_account_id
name = "my_pipeline"
sql = "INSERT INTO my_sink SELECT * FROM my_stream"
}
- 上面是我簡化過的示意,官方範例是用資源參照帶入輸出與串流的名稱,詳細寫法請看官方文件
- 官方範例中的串流格式為 JSON,輸出格式為 Parquet
- 完整的端到端範例(含 R2 儲存桶、資料目錄、限定範圍 API 權杖的建立)在官方 Pipelines Terraform 文件
我的看法
我自己的資料量不大,現在還沒有串流資料管線的需求,但接案時遇過客戶想把網站行為資料存起來分析。以前這類設定常常是某個人在控制台點出來的,過幾個月沒人記得怎麼設。把它寫成 Terraform,至少重建環境或交接時有一份可以看的程式碼。
要注意的是,這篇更新只說明支援哪些資源與一個最小範例,並沒有談價格、限制或正式版狀態。要不要在正式環境用,還是得先看 Pipelines 與 R2 Data Catalog 本身的狀態與費用說明。
什麼時候值得用?
- 你已經用 Terraform 管理 Cloudflare 的其他資源,希望資料管線也走同一套流程
- 需要在測試、正式等多個環境重複建立相同的管線設定
- 想用程式碼審查(code review)來檢查資料管線的改動
如果你只是偶爾試試 Pipelines,直接用控制台可能更快;Terraform 的好處是長期維護與重複部署。這是我的整理,不是官方說法。
名詞小辭典
- Terraform:用程式碼描述雲端資源、再自動建立的工具,屬於「基礎設施即程式碼」。
- Apache Iceberg:一種資料表格式,適合大量資料分析,讓不同查詢工具讀同一份資料。
- Parquet:欄式的檔案格式,常用來存分析用資料,壓縮率高。
- 串流(Stream):持續流入的資料,例如網站事件或感測器紀錄。