Skip to content
返回部署

部署 Cloudflare Workers

Cloudflare 全球边缘 serverless 计算,0ms 冷启动,KV、R2 和 D1。

边缘进阶

为什么

Cloudflare Workers 运行于 300+ 位置,0ms 冷启动(V8 隔离,非容器)。KV 全球最终一致存储,R2 兼容 S3 无出口费,D1 边缘 SQLite。

Cloudflare 边缘网络覆盖 330+ 城市,全球 p95 延迟低于 50ms。边缘函数相比源服务器将 TTFB 降低 60-80%,Akamai 报告 2024 年 40% 的企业使用边缘计算。

何时使用

边缘 API、auth 代理、A/B 测试和地理路由用 Workers。长时任务(>30s CPU)或重计算避免。

如何做

1. 编写 — src/index.ts,export default { fetch() {} } 2. 配置 — wrangler.toml 配 name、bindings、vars 3. 开发 — npx wrangler dev 本地测试 4. 部署 — npx wrangler deploy 5. KV — kv namespace create,wrangler.toml 绑定 6. R2 — r2 bucket create,兼容 S3 对象存储 7. D1 — d1 create,边缘 SQLite 数据库

示例

// src/index.ts export default { async fetch(req: Request, env: Env): Promise<Response> { const country = req.cf?.country || "unknown"; const count = parseInt(await env.KV.get("count") || "0") + 1; await env.KV.put("count", count.toString()); return Response.json({ country, count }); }, }; // wrangler.toml name = "my-worker" main = "src/index.ts" compatibility_date = "2024-01-01" [[kv_namespaces]] binding = "KV" id = "abc123"

常见问题

  • ⚠Worker 超 1MB — 包过大,用动态导入或拆分多 Worker
  • ⚠KV 最终一致 — 写入最多 60s 全球传播,用 cache API 即时读
  • ⚠环境间配置漂移 — 使用基础设施即代码(Terraform/Pulumi)保持 dev/staging/prod 一致

最佳实践

  • ✓所有配置用 wrangler.toml — 版本控制,非仅面板设置
  • ✓用 req.cf 获取地理数据 — 国家、城市、时区无需外部 API
  • ✓设置健康检查和优雅关闭 — 处理 SIGTERM 以在退出前排空进行中的请求

常见问题解答