ClaudeCloudflare Developer Platform2026/05/04 0:00

Pipelines - Pipelines and R2 Data Catalog now supported in Terraform

要点だけを先に読めるように短く再構成したセクションです。

元記事

Quick Digest

要約

要点だけを先に読めるように短く再構成したセクションです。

claudejamodel: claude-haiku-4-5

Terraform で Pipelines と R2 Data Catalog がサポート開始

Key Points

  • Terraform で Pipelines 管理が可能に
  • 4つの新リソースでインフラストラクチャ・アズ・コード実現
  • R2 Data Catalog との統合サポート

Summary

Cloudflare Terraform provider v5.19.0 で、Pipelines と R2 Data Catalog の管理が可能になりました。これにより、データパイプライン全体をインフラストラクチャ・アズ・コードとして定義できます。

Key Points

  • 4つの新しいリソース追加

    • cloudflare_r2_data_catalog — R2 バケットでデータカタログを有効化
    • cloudflare_pipeline_stream — HTTP または Worker バインディング経由でイベントを受信するストリーム作成
    • cloudflare_pipeline_sink — R2 Data Catalog または R2 に書き込むシンク作成
    • cloudflare_pipeline — ストリームとシンクを SQL で接続するパイプライン作成
  • Pipelines の機能

    • Workers または HTTP エンドポイント経由でストリーミングデータを取得
    • SQL で変換
    • Apache Iceberg テーブルとして R2 に書き込み
  • R2 Data Catalog の機能

    • Iceberg テーブルの管理とコンパクション
    • R2 SQL、Spark、DuckDB などのクエリエンジンとの互換性

Full Translation

翻訳

原文の流れを保ったまま読める翻訳セクションです。

claudejamodel: claude-haiku-4-5

Pipelines - PipelinesとR2 Data CatalogがTerraformでサポートされるようになりました

Pipelines と R2 Data Catalog が Terraform でサポートされるようになりました

概要

Cloudflare Pipelines は、Workers または HTTP エンドポイント経由でストリーミングデータを取り込み、SQL で変換し、Apache Iceberg テーブルとして R2 に書き込みます。R2 Data Catalog は、これらの Iceberg テーブル、圧縮、および R2 SQL、Spark、DuckDB などのクエリエンジンとの互換性を管理します。

これら両方の製品を Terraform を使用して作成・管理できるようになりました。Cloudflare Terraform provider v5.19.0 でサポートされています。

新しいリソース

これにより、データパイプライン全体をインフラストラクチャ・アズ・コード(Infrastructure-as-Code)として定義できる 4 つの新しいリソースが追加されます:

  • cloudflare_r2_data_catalog — R2 バケットでデータカタログを有効化
  • cloudflare_pipeline_stream — HTTP または Worker バインディング経由でイベントを受け取るストリームを作成
  • cloudflare_pipeline_sink — R2 Data Catalog または R2 に書き込むシンクを作成
  • cloudflare_pipeline — ストリームをシンクに接続する SQL パイプラインを作成

最小限の例

以下は、ストリーム、R2 Data Catalog シンク、およびパイプラインを作成する最小限の例です:

resource "cloudflare_pipeline_stream" "my_stream" {
  account_id = var.cloudflare_account_id
  name       = "my_stream"
  format = {
    type = "json"
  }
  schema = {
    fields = [
      {
        name     = "value"
        type     = "json"
        required = true
      }
    ]
  }
  http = {
    enabled        = true
    authentication = false
    cors           = {}
  }
  worker_binding = {
    enabled = false
  }
}

resource "cloudflare_pipeline_sink" "my_sink" {
  account_id = var.cloudflare_account_id
  name       = "my_sink"
  type       = "r2_data_catalog"
  format = {
    type = "parquet"
  }
  schema = {
    fields = []
  }
  config = {
    account_id = var.cloudflare_account_id
    bucket     = "my-pipeline-bucket"
    table_name = "my_table"
    token      = var.catalog_token
  }
}

resource "cloudflare_pipeline" "my_pipeline" {
  account_id = var.cloudflare_account_id
  name       = "my_pipeline"
  sql        = "INSERT INTO ${cloudflare_pipeline_sink.my_sink.name} SELECT * FROM ${cloudflare_pipeline_stream.my_stream.name}"
}

詳細情報

R2 バケット作成、データカタログセットアップ、スコープ付き API トークンプロビジョニングを含む完全なエンドツーエンドの例については、Pipelines Terraform ドキュメントを参照してください。