2-1 Workers とは

受付に人がいても、答え方が決まっていなければ返事は毎回ばらばらです。用件ごとの対応を書いたマニュアルがあれば、同じ決まりで返せます。
いま読んでいるこのサイト(Cloudflare Lab)では、すべての用件を一度スタッフが受けます。そして棚からページを取り、対応済みの印を付けて返します。
ここでは、用件票、マニュアル、返事、引き出し、片付けメモの順に見ます。最後に、Cloudflare Lab のマニュアル全文を日常語へ直します。
Learning goals
この節でできるようになること
- Worker の役割を受付マニュアルとして説明できる
- 用件票から返事が作られる流れを説明できる
- 引き出しと片付けメモの違いを説明できる
- Cloudflare Lab のコードが何をするか一行ずつ話せる
1. 窓口に置く対応マニュアル(Worker)
Section titled “1. 窓口に置く対応マニュアル(Worker)”たとえるなら、スタッフ本人ではなく、スタッフが読む指示書が Worker です。同じ指示書を各地の窓口に置けば、どこでも同じ対応ができます。
Cloudflare では、このコードを Worker と呼びます。Cloudflare のネットワーク上で、届いた出来事に応じて実行されます。
実物では、src/worker/index.ts が Cloudflare Lab のマニュアルです。全国の窓口へ配ると、ページを求める通信に対して同じ処理が動きます。

本の中身がコードで、読む役は Cloudflare の実行環境です。お客さんはスタッフのいる建物を選ぶ必要がありません。
つまり、Worker は一台の機械ではなく、窓口で実行される対応の決まりです。
2. お客さんが来たら(fetch handler)
Section titled “2. お客さんが来たら(fetch handler)”スタッフは、お客さんから用件票を受け取ります。マニュアルの「お客さんが来たら」の章を開き、品物と控えを添えて返します。
Cloudflare では、入口を fetch handler、用件票を Request、返事を Response と呼びます。fetch handler は Request を受け、Response を返します。
実物では、URL、求め方、付属情報などが Request に入ります。Worker はそれを読み、ページ本体と状態などを Response に入れます。

矢印は、用件票がマニュアルへ渡り、返事が出ていく流れです。返事には品物だけでなく控えも付きます。
ここからは正式な名前で確認します。
つまり、Worker の中心は「受け取る、決める、返す」の三段階です。
3. 引き出しと片付けメモ(env と ctx.waitUntil)
Section titled “3. 引き出しと片付けメモ(env と ctx.waitUntil)”スタッフは、鍵や倉庫の場所を自分のポケットへ勝手に入れません。店が用意した引き出しから取り出し、返事の後に行う作業は片付けメモへ残します。
Cloudflare では、引き出しを env(設定された接続先の集まり) と呼びます。片付けメモには ctx.waitUntil(返事の後まで続ける作業) を使います。
実物では、env.ASSETS が棚から取るときの窓です。ctx.waitUntil() は、返事を待たせずに続けたい Promise を登録します。

左の引き出しは仕事中に使う物、右の片付けメモは返事の後の作業です。どちらもスタッフが自由に作った隠し場所ではありません。
つまり、接続先は env から受け取り、後仕事は ctx へ明示します。
4. 無料で使える範囲
Section titled “4. 無料で使える範囲”店の無料枠には、来客数とスタッフが手を動かす時間の上限があります。待ち時間と手作業の時間を同じものとして数えません。
Cloudflare の公式料金ページでは、Free plan の Worker requests と CPU time が次のように示されています。Static Assets への requests は free and unlimited と記載されています。
- Worker requests
- 100,000 / 日
- CPU time
- 10 ms / invocation
- Static Assets requests
- Free and unlimited
ここで CPU time は、スタッフが実際に手を動かしている時間に当たります。外部から返事を待つ経過時間全体とは別です。
つまり、無料枠を見るときは、来客数と実作業の時間を分けます。
5. Cloudflare Lab での使われ方
Section titled “5. Cloudflare Lab での使われ方”ここで紹介した fetch handler と env が、いま読んでいる Cloudflare Lab でどう使われているかを、マニュアル全文で見ます。
次のコードは「棚からページを取り、対応済みの印を付けて返す」命令です。記号を読めなくても大丈夫です。
export default { async fetch(request, env): Promise<Response> { const assetResponse = await env.ASSETS.fetch(request); const headers = new Headers(assetResponse.headers); headers.set('x-clf-lab', '1');
return new Response(assetResponse.body, { status: assetResponse.status, statusText: assetResponse.statusText, headers, }); },} satisfies ExportedHandler<Env>;export default は、この本を受付のマニュアルとして渡します。fetch は、お客さんが来たときに開く章です。
env.ASSETS.fetch(request) は、用件票を棚の窓へ渡します。new Headers は、棚から受け取った返事の控えを写します。
headers.set は、控えへ x-clf-lab: 1 の印を足します。最後の new Response は、品物、状態、控えを新しい返事としてまとめます。
つまり、このコードは棚の返事を壊さず、対応済みの印だけを加えます。
つまずきやすいところ
Section titled “つまずきやすいところ”この節のまとめ
Section titled “この節のまとめ”- Worker は、窓口に置かれた対応マニュアルです。
- fetch handler が用件票を受け、Response という返事を作ります。
- Cloudflare Lab は棚のページへ対応済みの印を付けます。
この節で出てきた言葉を、つながりの順に並べると次のようになります。
図のラベル: 用件票 Request / 対応マニュアル Worker / お客さんが来たら fetch handler / 引き出し env 片付けメモ ctx.waitUntil / 返事 Response / 対応済みの印 x-clf-lab
次の節では、店を作る C3 と運営する Wrangler を分けます。
この節のチェック
© 2026 osdse