Pages Functions の設定方法は 2 つあります。Cloudflare ダッシュボード ↗ か、Wrangler 設定ファイルです。Wrangler 設定ファイルは、Workers と Pages Functions の開発・デプロイ設定をカスタマイズするファイルです。
このページは、Wrangler 設定ファイルで Pages プロジェクトを設定する際のリファレンスです。
Wrangler 設定ファイルを使う場合は、そのファイルを Pages プロジェクト設定の 信頼できる情報源 として扱ってください。
Wrangler 設定ファイルで Pages プロジェクトを設定すると、次のことができます。
- 設定ファイルをソース管理に置く: ほかのコードと同じリポジトリで設定を管理します。
- コードエディターで設定を編集する: 画面を行き来する必要が減ります。
- 環境間で共有する設定を書く: バインディング などの設定を、ローカル開発、プレビュー、本番で 1 つのファイルに定義します。
- アクセス制御を強化する: プロジェクトリポジトリ内の設定ファイルを使うと、Cloudflare ダッシュボードへのアクセスを渡さずに、変更できる人を制御できます。
{
"$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"Wrangler 設定ファイルによる Pages Functions の設定には、V2 ビルドシステム 以降が必要です。V1 からの更新は、V2 ビルドシステムへの移行手順 を参照してください。
Pages プロジェクトの設定に Wrangler 設定ファイルを使うには、Wrangler 3.45.0 以上が必要です。バージョンの確認、更新、インストールは Wrangler のインストール / 更新 を参照してください。
Wrangler ファイルがない Pages プロジェクトと、すでに Wrangler ファイルがある Pages プロジェクトでは、移行手順が異なります。本番での誤りを避けるため、状況に応じた手順をよく読んでください。
プレビューと本番の設定を Wrangler 設定ファイルで定義できるようになる前は、このファイルで、ローカル開発時に Pages プロジェクトで使える バインディング を定義できました。
ローカル開発に Wrangler 設定ファイルを使っていた場合、Pages プロジェクトには次のようなファイルがあることがあります。
{
"kv_namespaces": [
{
"binding": "KV",
"id": "<NAMESPACE_ID>"
}
]
}[[kv_namespaces]]
binding = "KV"
id = "<NAMESPACE_ID>"既存の Wrangler ファイルを Pages プロジェクト設定に使うには、次を行います。
pages_build_output_dirキーを追加し、ビルド出力ディレクトリ の適切な値を設定します(例:pages_build_output_dir = "./dist")。- デプロイ前に、既存の Wrangler 設定をよく確認し、意図したプロジェクト設定と一致しているかを確かめてください。
Wrangler 設定ファイルに pages_build_output_dir キーを追加して Pages プロジェクトをデプロイすると、Pages はローカル向けに定義されていた設定を使います。本番向けではないことがほとんどです。Wrangler 設定ファイルが本番利用に耐えると確信できるまで、デプロイしないでください。
pages_build_output_dir キーを追加しなければ、本番移行せずに、Wrangler ファイルをローカル開発専用として使い続けられます。pages_build_output_dir キーを追加せずに wrangler pages deploy を実行すると、フィールドが不足しており、ファイルはローカル開発専用として使い続ける、という警告が表示されます。
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 で新しいデプロイを作成します。
Cloudflare ダッシュボードでは、プレビューデプロイの compatibility date を "Latest" にできます。自分で明示しなくても、常に最新の compatibility date を使います。
"Latest" に設定したプロジェクトから wrangler pages download で Wrangler 設定ファイルをダウンロードすると、ダウンロード時点で利用できる最新の compatibility date がファイルに入ります。Wrangler はダッシュボードのような "Latest" 機能に対応していません。Wrangler 設定ファイルでは、compatibility date を明示する必要があります。
compatibility date の意味と動作は、このガイド を参照してください。
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 でデプロイすると、name、pages_build_output_dir、kv_namespaces、vars がローカルと本番に適用され、env.preview がプレビューデプロイの kv_namespaces と vars を上書きします。
ローカルとプレビューに値を適用し、本番だけ上書きする場合、ファイルは次のようになります。
{
"$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"継承可能なキーはトップレベルで設定でき、環境固有の設定に継承(または上書き)されます。
-
namestringrequired- Pages プロジェクトの名前です。英数字とハイフンのみです。
-
pages_build_output_dirstringrequired- プロジェクトのビルド出力フォルダーへのパスです。例:
./dist。
- プロジェクトのビルド出力フォルダーへのパスです。例:
-
compatibility_datestringrequiredyyyy-mm-dd形式の日付です。使う Workers ランタイムのバージョンを決めます。Compatibility dates を参照してください。
-
compatibility_flagsstring[] optional- Workers ランタイムの今後の機能を有効にするフラグの一覧です。通常は
compatibility_dateと一緒に使います。compatibility dates を参照してください。
- Workers ランタイムの今後の機能を有効にするフラグの一覧です。通常は
-
send_metricsbooleanoptional- このプロジェクトについて、Wrangler が使用状況データを Cloudflare に送るかどうかです。デフォルトは
trueです。詳しくは データポリシー ↗ を参照してください。
- このプロジェクトについて、Wrangler が使用状況データを Cloudflare に送るかどうかです。デフォルトは
-
limitsLimits optional- 実行時に課す上限を設定します。Limits を参照してください。
-
placementPlacement optional- 往復時間を短くするため、Pages Functions の配置方法を指定します。Smart Placement を参照してください。
-
upload_source_mapsbooleanupload_source_mapsをtrueにすると、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]] を定義して上書きする必要があります。
この設定はローカル開発では動きますが、デプロイ時の検証に失敗します。
-
varsobjectoptional- Function のデプロイ時に設定する環境変数のマップです。環境変数 を参照してください。
-
d1_databasesobjectoptional- Function をバインドする D1 データベースの一覧です。D1 databases を参照してください。
-
durable_objectsobjectoptional- Function をバインドする Durable Objects の一覧です。Durable Objects を参照してください。
-
hyperdriveobjectoptional- Function をバインドする Hyperdrive 設定を指定します。Hyperdrive を参照してください。
-
kv_namespacesobjectoptional- Function をバインドする KV 名前空間の一覧です。KV namespaces を参照してください。
-
queues.producersobjectoptional- この Function にバインドする Queues Producers を指定します。Queues Producers を参照してください。
-
r2_bucketsobjectoptional- Function をバインドする R2 バケットの一覧です。R2 buckets を参照してください。
-
vectorizeobjectoptional- Function をバインドする Vectorize インデックスの一覧です。Vectorize indexes を参照してください。
-
servicesobjectoptional- Function をバインドするサービスバインディングの一覧です。サービスバインディング を参照してください。
-
analytics_engine_datasetsobjectoptional- この Function にバインドする analytics engine データセットを指定します。Workers Analytics Engine を参照してください。
-
aiobjectoptional- この Function への AI バインディングを指定します。Workers AI を参照してください。
Pages プロジェクトの上限は、Workers と同じ方法で設定できます。詳しくは このガイド を参照してください。
バインディング を使うと、Pages Functions が Cloudflare Developer Platform 上のリソースとやり取りできます。バインディングで、KV、Durable Objects、R2、D1 などの Cloudflare リソースと Pages Functions を連携します。本番とプレビューの両方の環境にバインディングを設定できます。
D1 は Cloudflare のサーバーレス SQL データベースです。Function は、D1 Workers Binding API 向けに各データベースへの バインディング を作成し、D1 データベース(または複数のデータベース)をクエリできます。
- D1 データベースバインディングは、Cloudflare Workers と同じ方法で Wrangler ファイル から設定します。
- D1 Database バインディング を使います。
Durable Objects は、Workers プラットフォーム向けに低レイテンシの調整と一貫したストレージを提供します。
- Durable Object 名前空間バインディングは、Cloudflare Workers と同じ方法で Wrangler ファイル から設定します。
- Durable Object 名前空間バインディング を使います。
環境変数 は、Pages Function にテキスト文字列または JSON 値を付けるバインディングの一種です。
- 環境変数は、Cloudflare Workers と同じ方法で Wrangler ファイル から設定します。
- 環境変数 を使います。
Hyperdrive バインディングを使うと、Pages Function 内から任意の Postgres データベースとやり取りし、クエリできます。
- Hyperdrive バインディングは、Cloudflare Workers と同じ方法で Wrangler ファイル から設定します。
Workers KV は、グローバルで低レイテンシのキーバリューデータストアです。少数の集中データセンターにデータを保存し、アクセス後に Cloudflare のデータセンターへキャッシュします。
- KV 名前空間バインディングは、Cloudflare Workers と同じ方法で Wrangler ファイル から設定します。
- KV 名前空間バインディング を使います。
Queues は Cloudflare のグローバルメッセージキューサービスです。配信保証 と メッセージのバッチ処理 を提供します。Queue Producers を使うと、Pages Function 内からキューへメッセージを送れます。
- Queues Producer バインディングは、Cloudflare Workers と同じ方法で Wrangler ファイル から設定します。
- Queues Producer バインディング を使います。
Cloudflare R2 Storage を使うと、一般的なクラウドストレージに付きものの高額なエグレス帯域料金なしで、大量の非構造化データを保存できます。
- R2 バケットバインディングは、Cloudflare Workers と同じ方法で Wrangler ファイル から設定します。
- R2 バケットバインディング を使います。
Vectorize インデックス を使うと、セマンティック検索、分類、その他のベクトル検索用途向けに、ベクトル埋め込みを挿入してクエリできます。
- Vectorize バインディングは、Cloudflare Workers と同じ方法で Wrangler ファイル から設定します。
サービスバインディングを使うと、Pages Function 内から Worker を呼び出せます。Pages Function を Worker にバインドすると、インターネットを経由せずにその Worker へ HTTP リクエストを送れます。リクエストはすぐ下流の Worker を呼び出すため、サードパーティサービスへのリクエストよりレイテンシが低くなります。サービスバインディングについて を参照してください。
- サービスバインディングは、Cloudflare Workers と同じ方法で Wrangler ファイル から設定します。
- サービスバインディング を使います。
Workers Analytics Engine は、Pages Functions からの分析、可観測性、データロギングを提供します。Pages Function のバインディング内でデータポイントを書き込み、SQL API でデータをクエリします。
- Analytics Engine Dataset バインディングは、Cloudflare Workers と同じ方法で Wrangler ファイル から設定します。
- Analytics Engine Dataset を使います。
Workers AI を使うと、Workers、Pages、または REST API 経由のどこからでも、Cloudflare ネットワーク上で機械学習モデルを実行できます。
ほかのバインディングと異なり、このバインディングは Pages Function プロジェクトあたり 1 つの AI バインディングに限られます。
- Workers AI バインディングは、Cloudflare Workers と同じ方法で Wrangler ファイル から設定します。
- Workers AI バインディング を使います。
設定できるローカル開発の項目は、Pages Functions と Cloudflare Workers で同じです。詳しくは このガイド を参照してください。
Pages Functions プロジェクトで使う場合、Wrangler ファイルが信頼できる情報源です。Cloudflare ダッシュボードにログインすると、同じフィールドを確認できますが、編集はできません。
Wrangler 設定ファイルで設定したくない場合は、安全に削除して新しいデプロイを作成できます。前回のデプロイの設定値が引き続き適用され、ダッシュボードから編集できるようになります。