翻译说明:本文为 MobileSetting 原文 的繁体中文转简体中文翻译。除繁简转换、明显错别字和排版外,保留原文标题、事实、观点、数字、结构和第一人称表达。
Cloudflare Workers 免费版每日 100,000 次请求、10ms CPU 时间限制,适合部署轻量 API、URL 重定向、Webhook Handler,全球边缘部署延迟极低,香港用家存取速度快。
香港开发者部署后端服务,传统方法系租 VPS 或用 AWS/GCP,但呢啲方案要管理伺服器、又有起步费用。Cloudflare Workers 系无伺服器(Serverless)方案,代码跑喺 Cloudflare 全球 300+ 个节点,免费版已足够大部分个人项目,而且部署只需一条指令。
Workers 系咩?同传统伺服器有咩分别?
Cloudflare Workers 系一个「边缘运算」(Edge Computing)平台。你写 JavaScript 或 TypeScript 函数,Cloudflare 把它部署到全球 300+ 个数据中心,每次有请求进来,最近嘅节点会即时执行你嘅代码。
同传统伺服器嘅分别:
| 比较项目 | 传统 VPS | Cloudflare Workers |
|---|---|---|
| 收费模式 | 月费固定($5+/月) | 按请求数计,免费版每日 10 万次 |
| 延迟 | 视乎伺服器地点 | 全球边缘,延迟通常 <50ms |
| 维护 | 要自己管伺服器、更新、安全 | 完全托管,零维护 |
| 冷启动 | 无(长期运行) | Workers 无冷启动问题(比 Lambda 快) |
| 限制 | 相对灵活 | 每次请求 CPU 时间有限制 |
Workers 最适合嘅场景:轻量 API 端点、URL 重定向、请求过滤、Webhook 接收、静态资产缓存逻辑。唔适合需要长时间计算或大量 CPU 嘅任务。
免费版限制同付费版比较
清楚了解限制先,唔好做到一半先发现超出限额。
免费版(Free):
- 每日 100,000 次请求
- 每次请求最多 10ms CPU 时间(墙钟时间 30 秒)
- 128MB 记忆体
- Workers KV:每日 100,000 次读取、1,000 次写入、1GB 存储
- Workers 数量:上限 100 个
- 子域名格式:
你的名字.workers.dev(免费)
付费版($5/月起,Workers Paid):
- 每月 1,000 万次请求免费,之后 $0.50/百万次
- CPU 时间提升至 30ms(Unbound 方案更可延长至 15 分钟)
- 支援 Cron Triggers(定时任务)
- Workers KV 写入上限大幅提升
- 自订域名绑定(唔需要额外费用)
对香港小型开发者嚟讲,免费版通常足够:每日 10 万次请求系几个小型 API 嘅总和,对个人项目已相当充裕。
第一个 Worker 部署步骤(Hello World API)
准备工作:
- 建立 Cloudflare 帐号(cloudflare.com,免费)
- 安装 Node.js(建议 18+)
- 安装 Wrangler CLI(Cloudflare 嘅 Workers 工具):
npm install -g wrangler
步骤一:登入 Cloudflare
wrangler login
浏览器会打开授权页面,点允许后返回 Terminal。
步骤二:建立新 Worker 项目
wrangler init my-first-worker
cd my-first-worker
选择模板时,选「Hello World」Worker。
步骤三:查看默认代码
打开 src/index.js,你会见到类似以下代码:
export default {
async fetch(request, env, ctx) {
return new Response('Hello World!', {
headers: { 'Content-Type': 'text/plain' },
});
},
};
呢段代码嘅意思:每次有 HTTP 请求进来,返回「Hello World!」。
步骤四:本地测试
wrangler dev
在本地启动开发伺服器,打开 http://localhost:8787 就可以测试。
步骤五:部署到 Cloudflare
wrangler deploy
部署完成后,你会得到一个 URL,格式系 https://my-first-worker.你的用户名.workers.dev,全球即时可存取。整个过程唔需要管理任何伺服器。
实用案例(Webhook、URL Shortener、API Proxy)
案例一:Telegram Webhook Handler
接收 Telegram Bot 嘅 Webhook 通知,Workers 非常适合:
export default {
async fetch(request) {
if (request.method !== 'POST') {
return new Response('Method not allowed', { status: 405 });
}
const body = await request.json();
const message = body?.message?.text || '';
// 处理讯息逻辑
console.log('收到讯息:', message);
return new Response('OK');
}
};
案例二:URL Shortener(配合 KV 存储)
export default {
async fetch(request, env) {
const url = new URL(request.url);
const slug = url.pathname.slice(1); // 去掉开头 /
const target = await env.LINKS.get(slug); // 从 KV 读取目标 URL
if (target) {
return Response.redirect(target, 301);
}
return new Response('Link not found', { status: 404 });
}
};
案例三:API Proxy(加入 CORS Headers)
某些 API 唔支援 CORS,可以用 Workers 做代理:
export default {
async fetch(request) {
const targetUrl = 'https://api.example.com' + new URL(request.url).pathname;
const response = await fetch(targetUrl, request);
const newHeaders = new Headers(response.headers);
newHeaders.set('Access-Control-Allow-Origin', '*');
return new Response(response.body, {
status: response.status,
headers: newHeaders,
});
}
};
Workers KV 同 D1 Database 简介
单靠 Workers 函数本身无法储存数据,需要配合储存服务:
Workers KV(Key-Value 存储)
- 类似 Redis 嘅键值对存储
- 适合:Session 数据、配置、短连结映射
- 免费版:每日 10 万次读取,1,000 次写入
- 特点:全球复制,读取极快;但写入后最终一致性,唔适合需要即时一致嘅场景
D1 Database(SQLite)
- Cloudflare 提供嘅 SQLite 数据库,直接喺 Worker 里用 SQL 查询
- 适合:用户数据、内容管理、简单应用后端
- 免费版:每日 500 万行读取,10 万行写入,5GB 存储
- 用法:在
wrangler.toml绑定 D1 后,用env.DB.prepare()执行 SQL
两个存储服务免费额度对个人项目都相当足够,加埋 Workers 免费运算,基本上可以零成本建立完整嘅轻量后端。
常见问题 FAQ
Q1:Workers 可以用 Node.js 套件吗?
部分可以。Workers 运行环境唔系 Node.js,而系 V8 引擎(同 Chrome 一样),但 Cloudflare 提供 Node.js 兼容层(nodejs_compat flag),常用套件如 zod、hono 均可用。但依赖 Node.js 原生模组(如 fs、child_process)嘅套件唔支援。
Q2:Workers 同 Cloudflare Pages Functions 有咩分别?
Pages Functions 系 Workers 嘅简化版,专为静态网站添加后端功能,适合配合 Pages 部署嘅项目。Workers 系独立服务,更灵活,适合纯 API 或复杂后端逻辑。功能上 Pages Functions 最终都系跑喺 Workers 基础架构。
Q3:免费版 10ms CPU 时间够用吗?
对轻量请求足够。10ms CPU 时间可以执行几千行 JavaScript,做数据库查询、JSON 处理、URL 重定向等完全够。但如果系复杂计算(影像处理、PDF 生成),需要升付费版或另选方案。
Q4:Workers 可以绑定自订域名吗?
可以,但需要把域名加入 Cloudflare(改 nameserver)。加入后,喺 Workers → Triggers → Custom Domains 里添加域名即可。免费帐号支援此功能,唔需要付费。
Q5:Workers 有冇 Hong Kong 节点?
有。Cloudflare 喺香港有多个节点,本地用家存取 Workers 延迟通常系个位数毫秒(<10ms),远比部署喺其他地区嘅 AWS/GCP 快。




