Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

設定

最終更新 Markdown で表示Agent セットアップ

Pages Functions の設定方法は 2 つあります。Cloudflare ダッシュボード か、Wrangler 設定ファイルです。Wrangler 設定ファイルは、Workers と Pages Functions の開発・デプロイ設定をカスタマイズするファイルです。

このページは、Wrangler 設定ファイルで Pages プロジェクトを設定する際のリファレンスです。

Wrangler 設定ファイルを使う場合は、そのファイルを Pages プロジェクト設定の 信頼できる情報源 として扱ってください。

Wrangler 設定ファイルで Pages プロジェクトを設定すると、次のことができます。

  • 設定ファイルをソース管理に置く: ほかのコードと同じリポジトリで設定を管理します。
  • コードエディターで設定を編集する: 画面を行き来する必要が減ります。
  • 環境間で共有する設定を書く: バインディング などの設定を、ローカル開発、プレビュー、本番で 1 つのファイルに定義します。
  • アクセス制御を強化する: プロジェクトリポジトリ内の設定ファイルを使うと、Cloudflare ダッシュボードへのアクセスを渡さずに、変更できる人を制御できます。

Wrangler ファイルの例

{
	"$schema": "./node_modules/wrangler/config-schema.json",
	"name": "my-pages-app",
	"pages_build_output_dir": "./dist",
	"kv_namespaces": [
		{
			"binding": "KV",
			"id": "<NAMESPACE_ID>"
		}
	],
	"d1_databases": [
		{
			"binding": "DB",
			"database_name": "northwind-demo",
			"database_id": "<DATABASE_ID>"
		}
	],
	"vars": {
		"API_KEY": "1234567asdf"
	}
}
"$schema" = "./node_modules/wrangler/config-schema.json"
name = "my-pages-app"
pages_build_output_dir = "./dist"

[[kv_namespaces]]
binding = "KV"
id = "<NAMESPACE_ID>"

[[d1_databases]]
binding = "DB"
database_name = "northwind-demo"
database_id = "<DATABASE_ID>"

[vars]
API_KEY = "1234567asdf"

要件

V2 ビルドシステム

Wrangler 設定ファイルによる Pages Functions の設定には、V2 ビルドシステム 以降が必要です。V1 からの更新は、V2 ビルドシステムへの移行手順 を参照してください。

Wrangler

Pages プロジェクトの設定に Wrangler 設定ファイルを使うには、Wrangler 3.45.0 以上が必要です。バージョンの確認、更新、インストールは Wrangler のインストール / 更新 を参照してください。

ダッシュボード設定から移行する

Wrangler ファイルがない Pages プロジェクトと、すでに Wrangler ファイルがある Pages プロジェクトでは、移行手順が異なります。本番での誤りを避けるため、状況に応じた手順をよく読んでください。

既存の Wrangler ファイルがあるプロジェクト

プレビューと本番の設定を Wrangler 設定ファイルで定義できるようになる前は、このファイルで、ローカル開発時に Pages プロジェクトで使える バインディング を定義できました。

ローカル開発に Wrangler 設定ファイルを使っていた場合、Pages プロジェクトには次のようなファイルがあることがあります。

{
	"kv_namespaces": [
		{
			"binding": "KV",
			"id": "<NAMESPACE_ID>"
		}
	]
}
[[kv_namespaces]]
binding = "KV"
id = "<NAMESPACE_ID>"

既存の Wrangler ファイルを Pages プロジェクト設定に使うには、次を行います。

  1. pages_build_output_dir キーを追加し、ビルド出力ディレクトリ の適切な値を設定します(例: pages_build_output_dir = "./dist")。
  2. デプロイ前に、既存の Wrangler 設定をよく確認し、意図したプロジェクト設定と一致しているかを確かめてください。

Wrangler 設定ファイルに pages_build_output_dir キーを追加して Pages プロジェクトをデプロイすると、Pages はローカル向けに定義されていた設定を使います。本番向けではないことがほとんどです。Wrangler 設定ファイルが本番利用に耐えると確信できるまで、デプロイしないでください。

pages_build_output_dir キーを追加しなければ、本番移行せずに、Wrangler ファイルをローカル開発専用として使い続けられます。pages_build_output_dir キーを追加せずに wrangler pages deploy を実行すると、フィールドが不足しており、ファイルはローカル開発専用として使い続ける、という警告が表示されます。

既存の Wrangler ファイルがないプロジェクト

Cloudflare ダッシュボードで設定済みの Pages プロジェクトがあり、プロジェクト内に Wrangler ファイルがない場合は、Pages プロジェクトのディレクトリで wrangler pages download config コマンドを実行します。wrangler pages download config は、既存のダッシュボード設定をダウンロードし、有効な Wrangler ファイルを Pages プロジェクトのディレクトリに生成します。

npx wrangler pages download config <PROJECT_NAME>
yarn wrangler pages download config <PROJECT_NAME>
pnpm wrangler pages download config <PROJECT_NAME>

生成された Wrangler ファイルを確認します。Pages プロジェクトの設定に Wrangler 設定ファイルを使い始めるには、Git 連携 または Direct Upload で新しいデプロイを作成します。

compatibility date が "Latest" の場合

Cloudflare ダッシュボードでは、プレビューデプロイの compatibility date を "Latest" にできます。自分で明示しなくても、常に最新の compatibility date を使います。

"Latest" に設定したプロジェクトから wrangler pages download で Wrangler 設定ファイルをダウンロードすると、ダウンロード時点で利用できる最新の compatibility date がファイルに入ります。Wrangler はダッシュボードのような "Latest" 機能に対応していません。Wrangler 設定ファイルでは、compatibility date を明示する必要があります。

compatibility date の意味と動作は、このガイド を参照してください。

Pages Functions と Workers で Wrangler 設定ファイルを使うときの違い

Workers を使ったことがあれば、Wrangler 設定ファイル にはすでに詳しいかもしれません。Pages Functions プロジェクトでこのファイルを使うときは、次の違いに注意してください。

  • Pages Functions の Wrangler ファイルと Workers 相当のファイルでは、設定フィールドが完全には一致しません。たとえば main のような Workers 専用の設定キーは、Pages Function の Wrangler 設定ファイルには適用されません。モジュールエイリアス など、Workers で使える機能の一部は、まだ Cloudflare Pages プロジェクトでは使えません。
  • Pages の Wrangler 設定ファイルには、Pages プロジェクト専用の新しいキー pages_build_output_dir があります。
  • このファイルでの 環境 と設定の継承は、Workers と 同じではありません
  • このファイルを使うと 信頼できる情報源 になります。つまり、同じフィールドを ダッシュボードでは編集できません

環境を設定する

Wrangler 設定ファイルを使うと、ローカル環境、プレビューデプロイ、本番の設定をまとめて定義できます。

ローカル開発

wrangler pages dev を使うと、Wrangler 設定ファイルがローカルに適用されます。Cloudflare ダッシュボードにログインせず、設定変更をすぐ試せます。次の設定ファイルを例にします。

{
	"$schema": "./node_modules/wrangler/config-schema.json",
	"name": "my-pages-app",
	"pages_build_output_dir": "./dist",
	// Set this to today's date
	"compatibility_date": "2026-09-20",
	"compatibility_flags": [
		"nodejs_compat"
	],
	"kv_namespaces": [
		{
			"binding": "KV",
			"id": "<NAMESPACE_ID>"
		}
	]
}
"$schema" = "./node_modules/wrangler/config-schema.json"
name = "my-pages-app"
pages_build_output_dir = "./dist"
# Set this to today's date
compatibility_date = "2026-09-20"
compatibility_flags = [ "nodejs_compat" ]

[[kv_namespaces]]
binding = "KV"
id = "<NAMESPACE_ID>"

この Wrangler 設定ファイルは、Pages プロジェクトに nodejs_compat compatibility flag と KV 名前空間バインディングを追加します。このファイルがある Pages プロジェクトのディレクトリで wrangler pages dev を実行すると、nodejs_compat がローカルに適用され、Pages Function のコードでは context.env.KV として KV バインディングが使えます。

本番とプレビューデプロイ

プロジェクトをデプロイする準備ができたら、Wrangler ファイルを含む新しいデプロイを作成し、本番とプレビューデプロイの設定を決めます。

上記の例を本番設定として使うには、次のコマンドで新しい本番デプロイを作成します。

npx wrangler pages deploy

または、より具体的には次です。

npx wrangler pages deploy --branch <PRODUCTION BRANCH>

プレビューデプロイ向けの設定をデプロイするには、プレビューデプロイ と連携するよう設定したブランチ上で、上記と同じコマンドを実行します。特定ブランチからのデプロイだけでなく、すべてのプレビューデプロイに設定が適用されます。Pages は現在、ブランチ単位の設定に対応していません。

環境ごとの上書き

ローカル、プレビューデプロイ、本番で異なる設定を使いたいことがあります。[env.production] または [env.preview] で、本番とプレビューデプロイの設定を上書きできます。

プレビューデプロイの設定を上書きする例は、次の Wrangler 設定ファイルを参照してください。

{
	"$schema": "./node_modules/wrangler/config-schema.json",
	"name": "my-pages-site",
	"pages_build_output_dir": "./dist",
	"kv_namespaces": [
		{
			"binding": "KV",
			"id": "<NAMESPACE_ID>"
		}
	],
	"vars": {
		"API_KEY": "1234567asdf"
	},
	"env": {
		"preview": {
			"kv_namespaces": [
				{
					"binding": "KV",
					"id": "<PREVIEW_NAMESPACE_ID>"
				}
			],
			"vars": {
				"API_KEY": "8901234bfgd"
			}
		}
	}
}
"$schema" = "./node_modules/wrangler/config-schema.json"
name = "my-pages-site"
pages_build_output_dir = "./dist"

[[kv_namespaces]]
binding = "KV"
id = "<NAMESPACE_ID>"

[vars]
API_KEY = "1234567asdf"

[[env.preview.kv_namespaces]]
binding = "KV"
id = "<PREVIEW_NAMESPACE_ID>"

[env.preview.vars]
API_KEY = "8901234bfgd"

このファイルを wrangler pages deploy でデプロイすると、namepages_build_output_dirkv_namespacesvars がローカルと本番に適用され、env.preview がプレビューデプロイの kv_namespacesvars を上書きします。

ローカルとプレビューに値を適用し、本番だけ上書きする場合、ファイルは次のようになります。

{
	"$schema": "./node_modules/wrangler/config-schema.json",
	"name": "my-pages-site",
	"pages_build_output_dir": "./dist",
	"kv_namespaces": [
		{
			"binding": "KV",
			"id": "<NAMESPACE_ID>"
		}
	],
	"vars": {
		"API_KEY": "1234567asdf"
	},
	"env": {
		"production": {
			"kv_namespaces": [
				{
					"binding": "KV",
					"id": "<PRODUCTION_NAMESPACE_ID>"
				}
			],
			"vars": {
				"API_KEY": "8901234bfgd"
			}
		}
	}
}
"$schema" = "./node_modules/wrangler/config-schema.json"
name = "my-pages-site"
pages_build_output_dir = "./dist"

[[kv_namespaces]]
binding = "KV"
id = "<NAMESPACE_ID>"

[vars]
API_KEY = "1234567asdf"

[[env.production.kv_namespaces]]
binding = "KV"
id = "<PRODUCTION_NAMESPACE_ID>"

[env.production.vars]
API_KEY = "8901234bfgd"

プレビューと本番の両方を明示的に上書きすることもできます。

{
	"$schema": "./node_modules/wrangler/config-schema.json",
	"name": "my-pages-site",
	"pages_build_output_dir": "./dist",
	"kv_namespaces": [
		{
			"binding": "KV",
			"id": "<NAMESPACE_ID>"
		}
	],
	"vars": {
		"API_KEY": "1234567asdf"
	},
	"env": {
		"preview": {
			"kv_namespaces": [
				{
					"binding": "KV",
					"id": "<PREVIEW_NAMESPACE_ID>"
				}
			],
			"vars": {
				"API_KEY": "8901234bfgd"
			}
		},
		"production": {
			"kv_namespaces": [
				{
					"binding": "KV",
					"id": "<PRODUCTION_NAMESPACE_ID>"
				}
			],
			"vars": {
				"API_KEY": "6567875fvgt"
			}
		}
	}
}
"$schema" = "./node_modules/wrangler/config-schema.json"
name = "my-pages-site"
pages_build_output_dir = "./dist"

[[kv_namespaces]]
binding = "KV"
id = "<NAMESPACE_ID>"

[vars]
API_KEY = "1234567asdf"

[[env.preview.kv_namespaces]]
binding = "KV"
id = "<PREVIEW_NAMESPACE_ID>"

[env.preview.vars]
API_KEY = "8901234bfgd"

[[env.production.kv_namespaces]]
binding = "KV"
id = "<PRODUCTION_NAMESPACE_ID>"

[env.production.vars]
API_KEY = "6567875fvgt"

継承可能なキー

継承可能なキーはトップレベルで設定でき、環境固有の設定に継承(または上書き)されます。

  • name string required

    • Pages プロジェクトの名前です。英数字とハイフンのみです。
  • pages_build_output_dir string required

    • プロジェクトのビルド出力フォルダーへのパスです。例: ./dist
  • compatibility_date string required

    • yyyy-mm-dd 形式の日付です。使う Workers ランタイムのバージョンを決めます。Compatibility dates を参照してください。
  • compatibility_flags string[] optional

    • Workers ランタイムの今後の機能を有効にするフラグの一覧です。通常は compatibility_date と一緒に使います。compatibility dates を参照してください。
  • send_metrics boolean optional

    • このプロジェクトについて、Wrangler が使用状況データを Cloudflare に送るかどうかです。デフォルトは true です。詳しくは データポリシー を参照してください。
  • limits Limits optional

    • 実行時に課す上限を設定します。Limits を参照してください。
  • placement Placement optional

    • 往復時間を短くするため、Pages Functions の配置方法を指定します。Smart Placement を参照してください。
  • upload_source_maps boolean

    • upload_source_mapstrue にすると、Wrangler は Pages プロジェクトに含まれるサーバーサイドのソースマップをアップロードし、ログのスタックトレースを補正します。

継承できないキー

継承できないキーはトップレベルで設定できます。ただし、いずれかの環境で継承できないキーを 1 つでも上書きした場合(例: [[env.production.kv_namespaces]])、その環境設定では、継承できないキーをすべて指定して上書きする必要があります。

たとえば、次の設定は動きません。

{
	"$schema": "./node_modules/wrangler/config-schema.json",
	"name": "my-pages-site",
	"pages_build_output_dir": "./dist",
	"kv_namespaces": [
		{
			"binding": "KV",
			"id": "<NAMESPACE_ID>"
		}
	],
	"vars": {
		"API_KEY": "1234567asdf"
	},
	"env": {
		"production": {
			"vars": {
				"API_KEY": "8901234bfgd"
			}
		}
	}
}
"$schema" = "./node_modules/wrangler/config-schema.json"
name = "my-pages-site"
pages_build_output_dir = "./dist"

[[kv_namespaces]]
binding = "KV"
id = "<NAMESPACE_ID>"

[vars]
API_KEY = "1234567asdf"

[env.production.vars]
API_KEY = "8901234bfgd"

[[env.production.vars]][vars] を上書きしています。そのため [[kv_namespaces]] も、[[env.production.kv_namespaces]] を定義して上書きする必要があります。

この設定はローカル開発では動きますが、デプロイ時の検証に失敗します。

  • vars object optional

    • Function のデプロイ時に設定する環境変数のマップです。環境変数 を参照してください。
  • d1_databases object optional

    • Function をバインドする D1 データベースの一覧です。D1 databases を参照してください。
  • durable_objects object optional

    • Function をバインドする Durable Objects の一覧です。Durable Objects を参照してください。
  • hyperdrive object optional

    • Function をバインドする Hyperdrive 設定を指定します。Hyperdrive を参照してください。
  • kv_namespaces object optional

    • Function をバインドする KV 名前空間の一覧です。KV namespaces を参照してください。
  • queues.producers object optional

    • この Function にバインドする Queues Producers を指定します。Queues Producers を参照してください。
  • r2_buckets object optional

    • Function をバインドする R2 バケットの一覧です。R2 buckets を参照してください。
  • vectorize object optional

    • Function をバインドする Vectorize インデックスの一覧です。Vectorize indexes を参照してください。
  • services object optional

  • analytics_engine_datasets object optional

    • この Function にバインドする analytics engine データセットを指定します。Workers Analytics Engine を参照してください。
  • ai object optional

    • この Function への AI バインディングを指定します。Workers AI を参照してください。

Limits

Pages プロジェクトの上限は、Workers と同じ方法で設定できます。詳しくは このガイド を参照してください。

バインディング

バインディング を使うと、Pages Functions が Cloudflare Developer Platform 上のリソースとやり取りできます。バインディングで、KVDurable ObjectsR2D1 などの Cloudflare リソースと Pages Functions を連携します。本番とプレビューの両方の環境にバインディングを設定できます。

D1 databases

D1 は Cloudflare のサーバーレス SQL データベースです。Function は、D1 Workers Binding API 向けに各データベースへの バインディング を作成し、D1 データベース(または複数のデータベース)をクエリできます。

Durable Objects

Durable Objects は、Workers プラットフォーム向けに低レイテンシの調整と一貫したストレージを提供します。

  • Durable Object 名前空間バインディングは、Cloudflare Workers と同じ方法で Wrangler ファイル から設定します。

環境変数

環境変数 は、Pages Function にテキスト文字列または JSON 値を付けるバインディングの一種です。

Hyperdrive

Hyperdrive バインディングを使うと、Pages Function 内から任意の Postgres データベースとやり取りし、クエリできます。

  • Hyperdrive バインディングは、Cloudflare Workers と同じ方法で Wrangler ファイル から設定します。

KV namespaces

Workers KV は、グローバルで低レイテンシのキーバリューデータストアです。少数の集中データセンターにデータを保存し、アクセス後に Cloudflare のデータセンターへキャッシュします。

Queues Producers

Queues は Cloudflare のグローバルメッセージキューサービスです。配信保証メッセージのバッチ処理 を提供します。Queue Producers を使うと、Pages Function 内からキューへメッセージを送れます。

R2 buckets

Cloudflare R2 Storage を使うと、一般的なクラウドストレージに付きものの高額なエグレス帯域料金なしで、大量の非構造化データを保存できます。

Vectorize indexes

Vectorize インデックス を使うと、セマンティック検索、分類、その他のベクトル検索用途向けに、ベクトル埋め込みを挿入してクエリできます。

  • Vectorize バインディングは、Cloudflare Workers と同じ方法で Wrangler ファイル から設定します。

サービスバインディング

サービスバインディングを使うと、Pages Function 内から Worker を呼び出せます。Pages Function を Worker にバインドすると、インターネットを経由せずにその Worker へ HTTP リクエストを送れます。リクエストはすぐ下流の Worker を呼び出すため、サードパーティサービスへのリクエストよりレイテンシが低くなります。サービスバインディングについて を参照してください。

Analytics Engine Datasets

Workers Analytics Engine は、Pages Functions からの分析、可観測性、データロギングを提供します。Pages Function のバインディング内でデータポイントを書き込み、SQL API でデータをクエリします。

Workers AI

Workers AI を使うと、Workers、Pages、または REST API 経由のどこからでも、Cloudflare ネットワーク上で機械学習モデルを実行できます。

ほかのバインディングと異なり、このバインディングは Pages Function プロジェクトあたり 1 つの AI バインディングに限られます。

ローカル開発の設定

設定できるローカル開発の項目は、Pages Functions と Cloudflare Workers で同じです。詳しくは このガイド を参照してください。

信頼できる情報源

Pages Functions プロジェクトで使う場合、Wrangler ファイルが信頼できる情報源です。Cloudflare ダッシュボードにログインすると、同じフィールドを確認できますが、編集はできません。

Wrangler 設定ファイルで設定したくない場合は、安全に削除して新しいデプロイを作成できます。前回のデプロイの設定値が引き続き適用され、ダッシュボードから編集できるようになります。

役に立ちましたか?