sell運算
bolt

Workers

寫一個函式、用一行指令部署,它就會立刻在全球 330 多個城市執行——完全不用自己管理伺服器。

330+全球城市
0ms冷啟動時間
100K免費請求 / 每天
128MB每個 Worker 記憶體
lightbulb

Workers 是什麼?

Cloudflare Workers 讓你把一小段程式碼(稱為「函式」function)跑在 Cloudflare 的網路上,完全不用租用或維護伺服器。你只要寫程式碼,Cloudflare 就會自動幫你在世界各地執行。

「Serverless(無伺服器)」不是真的沒有伺服器,而是指你不用去操心它。沒有機器要架設、沒有作業系統要更新、也不用煩惱怎麼擴充。你的程式碼只在有請求進來時才被叫醒、執行完就休息。

local_cafe

把它想成…

租一台傳統伺服器,就像買一整台咖啡機、24 小時插著電,就算沒人喝咖啡也要付電費。Workers 則像是有人點餐的那一瞬間才出現的咖啡師,沖好一杯就消失——你只為「沖的那幾杯」付費。

因為程式碼是在離每位訪客「實體位置最近」的 Cloudflare 資料中心執行(這就是所謂的「邊緣」edge),回應速度非常快。你可以用 JavaScript、TypeScript、Python 或 Rust 來寫 Workers。

help

為什麼要用它?

傳統伺服器有一堆雜事:要開機器、要讓它一直線上、流量暴增時要手忙腳亂,而且就算閒置也要付錢。Workers 把這一整類麻煩事直接拿掉。

rocket_launch

不用管伺服器

不用開機器、不用更新系統、半夜也不用爬起來重開機。所有基礎設施都由 Cloudflare 處理。

bolt

零冷啟動

Workers 用的是輕量的 V8 isolate(隔離環境),不是傳統容器,所以第一個請求進來時不用慢慢「暖機」。

public

天生就是全球

部署一次,程式碼就在 330 多個城市上線。每位訪客都會自動由離他最近的據點服務。

trending_up

自動擴充

不管是一個請求還是一百萬個,Workers 會自己擴大或縮小,你完全不用設定自動擴充。

payments

按請求計費

只為「實際執行」付費,不為閒置時間付錢。免費方案每天有 10 萬次請求的額度,相當大方。

extension

什麼都能串

用幾行設定就能把 Workers 接上儲存(KV、R2、D1)、佇列、AI 模型等等服務。

target

什麼時候該用?

只要你希望程式碼跑得快、全球都能跑、而且隨需執行,Workers 就很適合。以下是常見的實際用途。

api

API 與後端

幫手機或網頁 App 打造後端——處理請求、跟資料庫溝通、回傳 JSON 資料。

web

完整網站

直接在邊緣端供應整個網站,支援 Next.js、Astro、React 等框架。

alt_route

導流與轉址

在請求送到你的主機之前,先檢查它,做轉址、改寫或 A/B 測試。

schedule

排程工作

用 Cron Triggers(定時觸發)讓程式碼定時跑——寄每日信件、清理資料、抓取資料來源。

shield

驗證與中介層

在任何應用前面檢查權杖(token)、加上安全標頭、或限制請求頻率。

smart_toy

邊緣 AI

用 Workers AI 呼叫 AI 模型,並以極低延遲把回應串流給使用者。

rocket_launch

怎麼開始用?

你會用一個免費的命令列工具 Wrangler 來開發和部署 Workers。下面的步驟會建立一個「Hello World」Worker、先在你自己的電腦上跑,再把它正式發佈到網路上。

  1. 建立一個新的 Worker 專案

    這行指令會幫你產生一個可以直接跑的專案。出現選項時,選「Hello World」範本、「Worker only(只要 Worker)」、語言選 JavaScript。

    bash
    npm create cloudflare@latest -- my-first-worker
    cd my-first-worker
  2. 在本機執行

    啟動本機的開發伺服器。在瀏覽器打開 http://localhost:8787 就能看到你的 Worker 回應。

    bash
    npx wrangler dev
  3. 正式部署上線

    把你的 Worker 發佈到 Cloudflare 的全球網路。你會拿到一個公開網址,類似 my-first-worker.<你的子網域>.workers.dev。

    bash
    npx wrangler deploy
jssrc/index.js — 最小的 Worker
export default {
  // This fetch() handler runs on every incoming HTTP request
  async fetch(request, env, ctx) {
    return new Response("Hello World!");
  },
};
settings

wrangler.toml 是什麼?

每個專案都有一個 wrangler.toml(或 wrangler.jsonc)設定檔,裡面放著 Worker 的名稱,以及各種「bindings(綁定)」——也就是連到其他 Cloudflare 服務(例如資料庫或儲存)的連線。部署時 Wrangler 會讀取它。

school

重點概念

function

Handler(處理函式)

當某件事發生時 Cloudflare 會呼叫的函式——HTTP 請求用 fetch(),定時排程用 scheduled()。

layers

Isolate(隔離環境)

執行你程式碼的超輕量沙盒。成千上萬個共用一個程序,這就是為什麼沒有冷啟動。

cable

Binding(綁定)

從你的 Worker 安全地連到其他服務(資料庫、儲存空間、佇列)的橋樑。你透過 env 物件存取它。

hub

邊緣(edge)

Cloudflare 遍佈 330 多個城市的資料中心。你的程式碼會在離每位訪客最近的那一個執行。

timer

CPU 時間

你的程式碼實際運算的時間。免費方案每次請求 10 毫秒;付費方案預設 30 秒(最多可到 5 分鐘)。

terminal

Wrangler

Cloudflare 用來建立、測試、部署 Workers 的命令列工具。免費,用 npx 就能執行。

tips_and_updates

小提示與計費

savings

免費開始

免費方案每天給你 10 萬次請求——足夠你開發、學習、甚至上線一個小專案,完全不用先付費。

值得記住的限制

  • 免費方案:每天 10 萬次請求;付費方案:請求數無上限
  • CPU 時間:免費方案每次請求 10 毫秒,付費方案預設 30 秒(最多 5 分鐘)
  • 記憶體:兩種方案每個 Worker 都是 128 MB
  • Worker 大小:免費方案壓縮後 3 MB,付費方案 10 MB
  • 子請求(subrequest):免費方案每次請求 50 個,付費方案 1,000 個以上
warning

注意 CPU 時間

CPU 時間只算「實際運算」的時間,不算等待網路回應的時間。很重的迴圈或處理大量資料可能會超過上限——把大工作拆小,或改用 Queues(佇列)來處理。