Cloudflare Wrangler と Pages Functions —— デプロイツールと Functions バンドル
Wrangler とは何か
Wrangler(ラングラー)は Cloudflare(クラウドフレア)公式の CLI(Command Line Interface=コマンドライン上で操作するツール)である。Cloudflare の Workers / Pages(サーバーレス実行環境とホスティングサービス)を開発・デプロイ・管理するためのツールであり、要するに自分のコードを Cloudflare に公開(デプロイ)するための道具である。
サーバーレスとは、自前のサーバーを用意せず、コードの実行だけをクラウドに任せる方式を指す。Cloudflare 上ではデータセンターのエッジ(=利用者に地理的に最も近い拠点)で実行されるため、レイテンシ(=応答までの遅延)が低い。
Wrangler の主な操作
# ローカルで開発サーバーを起動(本番に近い環境を手元で再現)
wrangler dev
# Cloudflare 本番環境にデプロイ(公開)
wrangler deploy
Cloudflare Pages Functions とは何か
Cloudflare Pages は静的サイト(HTML/CSS/JS)をホスティングするサービスである。Pages Functions は、そうした静的サイトに追加できるサーバーレス関数であり、フロントエンドのみのサイトに API などのバックエンド処理を追加できる。
実装はシンプルで、リポジトリにfunctions/ディレクトリを作りファイルを置くだけである。ファイル名が URL パスになるという規約があり、例えばfunctions/api/hello.jsは/api/helloでアクセスできる。
Functions バンドルとは何か
ビルド時に、functions/ディレクトリ内のすべてのファイルが1つの Worker にまとめられる。これをFunctions バンドル(=複数の関数を1つにまとめた成果物)と呼ぶ。バンドルとは複数のファイルを1つにまとめることを指し、Webpack のような JavaScript のビルドツールでも同じ概念が使われる。
Pages Functions で REST API を作る
Pages Functions ではREST API(=HTTP の定められた作法に従ってデータをやり取りする API)を実装できる。一般的なパターンは、エンドポイント(=入口として呼び出す URL)をfunctions/api/配下に置くことである。
// functions/api/items.js — GET /api/items に対応
export async function onRequestGet(context) {
return Response.json({ items: ["A", "B", "C"] });
}
「REST API が動かない」典型的な原因
- functions/ の配置ミス:リポジトリルートの
functions/にファイルがなければビルドに含まれない。 - ルーティング規約の誤解:ファイル名=URL パスという規約を理解していないと、意図しないパスにファイルを置いてしまう。動的パラメーターは
[id].jsのようにブラケット記法で書く。 - ビルド設定の不備:Cloudflare Pages のダッシュボードで Functions が有効になっているか確認する。
- _routes.json の除外設定:
_routes.json(ルーティング制御ファイル)の除外リストに/api/*が入っていると、Functions が呼ばれず静的ファイル扱いになる。 - Workers と Pages の混同:Workers と Pages Functions はどちらも Cloudflare 上でコードを実行する方法だが、設定方法や
wrangler.toml(Wrangler の設定ファイル)の書き方が異なる。
Wrangler と Pages Functions の関係まとめ
| 役割 | 担当 |
|---|---|
| コードを書く場所 | functions/ディレクトリ |
| ローカルでの実行 | wrangler dev |
| 本番への公開 | wrangler deploy、または Cloudflare Pages の Git 連携による自動デプロイ |
| ビルド時の成果物 | Functions バンドル(単一の Worker) |
Cloudflare Pages を使う場合、GitHub リポジトリと連携すれば main ブランチへの push で自動デプロイされるため、wrangler deployを手動で実行しない構成にすることが一般的である。
出典・参考
元のノートに外部の出典リンクは記載されていない。
関連ノート
- Agentic Commerce — ACP and Visibility into Being 'Bought by AI'
- browser-to-api — a Browserbase skill that turns a site into OpenAPI from a CDP trace
- Safe tenant-scoped writes to a cloud database — connection, authentication and RLS in one go
- Introduction to the Digital Architect (00) — the reality of the profession and the big picture of an original textbook series
- The textbook for becoming a digital architect — table of contents (learning roadmap)
- Why a personal site runs completely free — Cloudflare Pages + GitHub Actions