スタンドアロン Workers
作成2026年4月4日Takeshi Takatsudo
Pages とは独立した Workers のデプロイ
使用する場面
スタンドアロン Workers は以下に最適:
- 検索ワーカー — 独自のデータと依存関係を持つ検索 API
- AI チャットワーカー — API キーバインディングを持つ LLM エンドポイント
- Webhook ハンドラー — 外部サービスからのコールバック受信
- プロキシワーカー — リクエストのルーティングや変換
プロジェクト構造
典型的なスタンドアロン Worker プロジェクト:
packages/my-worker/
├── src/
│ └── index.ts
├── wrangler.toml
├── package.json
└── tsconfig.json
Worker エントリーポイント
// src/index.ts
export default {
async fetch(request: Request, env: Env): Promise<Response> {
const url = new URL(request.url);
if (url.pathname === "/api/search") {
return handleSearch(request, env);
}
return new Response("Not Found", { status: 404 });
},
};
デプロイ
wrangler deploy(wrangler pages deploy ではなく)でデプロイ:
npx wrangler@4 deploy
CI ではワーカーのディレクトリからデプロイ:
- name: Deploy Worker
working-directory: packages/my-worker
run: pnpm run deploy
env:
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
パストリガーデプロイ
モノレポで複数ワーカーがある場合、ワーカーのファイルが変更された時のみデプロイをトリガーする:
on:
push:
branches:
- main
paths:
- 'packages/my-worker/**'
workflow_dispatch: