Workers
寫一個函式、用一行指令部署,它就會立刻在全球 330 多個城市執行——完全不用自己管理伺服器。
Workers 是什麼?
Cloudflare Workers 讓你把一小段程式碼(稱為「函式」function)跑在 Cloudflare 的網路上,完全不用租用或維護伺服器。你只要寫程式碼,Cloudflare 就會自動幫你在世界各地執行。
「Serverless(無伺服器)」不是真的沒有伺服器,而是指你不用去操心它。沒有機器要架設、沒有作業系統要更新、也不用煩惱怎麼擴充。你的程式碼只在有請求進來時才被叫醒、執行完就休息。
把它想成…
租一台傳統伺服器,就像買一整台咖啡機、24 小時插著電,就算沒人喝咖啡也要付電費。Workers 則像是有人點餐的那一瞬間才出現的咖啡師,沖好一杯就消失——你只為「沖的那幾杯」付費。
因為程式碼是在離每位訪客「實體位置最近」的 Cloudflare 資料中心執行(這就是所謂的「邊緣」edge),回應速度非常快。你可以用 JavaScript、TypeScript、Python 或 Rust 來寫 Workers。
為什麼要用它?
傳統伺服器有一堆雜事:要開機器、要讓它一直線上、流量暴增時要手忙腳亂,而且就算閒置也要付錢。Workers 把這一整類麻煩事直接拿掉。
不用管伺服器
不用開機器、不用更新系統、半夜也不用爬起來重開機。所有基礎設施都由 Cloudflare 處理。
零冷啟動
Workers 用的是輕量的 V8 isolate(隔離環境),不是傳統容器,所以第一個請求進來時不用慢慢「暖機」。
天生就是全球
部署一次,程式碼就在 330 多個城市上線。每位訪客都會自動由離他最近的據點服務。
自動擴充
不管是一個請求還是一百萬個,Workers 會自己擴大或縮小,你完全不用設定自動擴充。
按請求計費
只為「實際執行」付費,不為閒置時間付錢。免費方案每天有 10 萬次請求的額度,相當大方。
什麼都能串
用幾行設定就能把 Workers 接上儲存(KV、R2、D1)、佇列、AI 模型等等服務。
什麼時候該用?
只要你希望程式碼跑得快、全球都能跑、而且隨需執行,Workers 就很適合。以下是常見的實際用途。
API 與後端
幫手機或網頁 App 打造後端——處理請求、跟資料庫溝通、回傳 JSON 資料。
完整網站
直接在邊緣端供應整個網站,支援 Next.js、Astro、React 等框架。
導流與轉址
在請求送到你的主機之前,先檢查它,做轉址、改寫或 A/B 測試。
排程工作
用 Cron Triggers(定時觸發)讓程式碼定時跑——寄每日信件、清理資料、抓取資料來源。
驗證與中介層
在任何應用前面檢查權杖(token)、加上安全標頭、或限制請求頻率。
邊緣 AI
用 Workers AI 呼叫 AI 模型,並以極低延遲把回應串流給使用者。
怎麼開始用?
你會用一個免費的命令列工具 Wrangler 來開發和部署 Workers。下面的步驟會建立一個「Hello World」Worker、先在你自己的電腦上跑,再把它正式發佈到網路上。
建立一個新的 Worker 專案
這行指令會幫你產生一個可以直接跑的專案。出現選項時,選「Hello World」範本、「Worker only(只要 Worker)」、語言選 JavaScript。
npm create cloudflare@latest -- my-first-worker cd my-first-worker在本機執行
啟動本機的開發伺服器。在瀏覽器打開 http://localhost:8787 就能看到你的 Worker 回應。
npx wrangler dev正式部署上線
把你的 Worker 發佈到 Cloudflare 的全球網路。你會拿到一個公開網址,類似 my-first-worker.<你的子網域>.workers.dev。
npx wrangler deploy
export default {
// This fetch() handler runs on every incoming HTTP request
async fetch(request, env, ctx) {
return new Response("Hello World!");
},
};wrangler.toml 是什麼?
每個專案都有一個 wrangler.toml(或 wrangler.jsonc)設定檔,裡面放著 Worker 的名稱,以及各種「bindings(綁定)」——也就是連到其他 Cloudflare 服務(例如資料庫或儲存)的連線。部署時 Wrangler 會讀取它。
重點概念
Handler(處理函式)
當某件事發生時 Cloudflare 會呼叫的函式——HTTP 請求用 fetch(),定時排程用 scheduled()。
Isolate(隔離環境)
執行你程式碼的超輕量沙盒。成千上萬個共用一個程序,這就是為什麼沒有冷啟動。
Binding(綁定)
從你的 Worker 安全地連到其他服務(資料庫、儲存空間、佇列)的橋樑。你透過 env 物件存取它。
邊緣(edge)
Cloudflare 遍佈 330 多個城市的資料中心。你的程式碼會在離每位訪客最近的那一個執行。
CPU 時間
你的程式碼實際運算的時間。免費方案每次請求 10 毫秒;付費方案預設 30 秒(最多可到 5 分鐘)。
Wrangler
Cloudflare 用來建立、測試、部署 Workers 的命令列工具。免費,用 npx 就能執行。
小提示與計費
免費開始
免費方案每天給你 10 萬次請求——足夠你開發、學習、甚至上線一個小專案,完全不用先付費。
值得記住的限制
- 免費方案:每天 10 萬次請求;付費方案:請求數無上限
- CPU 時間:免費方案每次請求 10 毫秒,付費方案預設 30 秒(最多 5 分鐘)
- 記憶體:兩種方案每個 Worker 都是 128 MB
- Worker 大小:免費方案壓縮後 3 MB,付費方案 10 MB
- 子請求(subrequest):免費方案每次請求 50 個,付費方案 1,000 個以上
注意 CPU 時間
CPU 時間只算「實際運算」的時間,不算等待網路回應的時間。很重的迴圈或處理大量資料可能會超過上限——把大工作拆小,或改用 Queues(佇列)來處理。