zudo-cloudflare-wisdom

Type to search...

to open search from anywhere

スタンドアロン 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 deploywrangler 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: