Skip to content
返回云服务

Cloudflare Workers 与边缘计算

在边缘构建 serverless 函数,冷启动低于 50ms,支持 KV 存储和 D1 SQLite 数据库。

Cloudflare进阶

为什么

Cloudflare Workers 在全球 300+ 位置运行,代码距用户 50ms。无冷启动(V8 隔离体,非容器),按请求付费每天 10 万次免费。适合边缘 API、A/B 测试和认证中间件。

何时使用

选择 Workers 用于边缘 API、认证/重定向中间件、个人项目(免费套餐)和延迟敏感的全球应用。避免长时间任务(50ms CPU 限制)或重计算。

如何做

1. 安装 Wrangler CLI — npm i -g wrangler 2. 脚手架 — wrangler init my-worker(选择 "Hello World" 模板) 3. 编写 handler — export default { async fetch(request, env, ctx) { ... } } 4. KV 命名空间 — wrangler kv:namespace create KV,在 wrangler.toml 绑定 5. D1 数据库 — wrangler d1 create mydb,在 handler 中通过 env.DB 使用 6. 本地测试 — wrangler dev(模拟边缘运行时) 7. 部署 — wrangler deploy(30 秒内上线 300+ 位置) 8. 自定义域名 — 在面板添加或通过 wrangler routes

示例

// wrangler.toml name = "my-api" main = "src/index.ts" compatibility_date = "2024-12-01" [[kv_namespaces]] binding = "KV" id = "abc123..." [[d1_databases]] binding = "DB" database_name = "mydb" database_id = "xyz789..." // src/index.ts — 带 KV + D1 的边缘 API export interface Env { KV: KVNamespace; DB: D1Database; } export default { async fetch(request: Request, env: Env): Promise<Response> { const url = new URL(request.url); // 边缘缓存响应 if (url.pathname === "/api/views") { const cached = await env.KV.get("views"); const views = parseInt(cached || "0") + 1; await env.KV.put("views", String(views)); return Response.json({ views }); } // 边缘 D1 查询 if (url.pathname === "/api/users") { const { results } = await env.DB.prepare("SELECT * FROM users LIMIT 10").all(); return Response.json(results); } return new Response("未找到", { status: 404 }); }, };

常见问题

  • ⚠超过 50ms CPU 限制 — 加密或大 JSON 解析撞墙
  • ⚠KV 最终一致性 — 写入最多 60 秒全球传播,读取过期
  • ⚠D1 5MB 查询限制 — 大 SELECT 结果被截断,用分页
  • ⚠wrangler dev 不等于生产 — 本地有 Node.js API 但边缘没有

最佳实践

  • ✓可缓存数据用 Cache API 而非 KV — 免费、更快、尊重 Cache-Control
  • ✓handler 保持 1MB 以内 — Workers 包限制,大依赖用动态导入
  • ✓全球读取用 D1 只读副本 — 主库单区域,副本在边缘
  • ✓wrangler.toml 设置 compatibility_date — 固定运行时行为,防止意外中断

常见问题解答

什么是Cloudflare Workers 与边缘计算?它解决什么问题?

在边缘构建 serverless 函数,冷启动低于 50ms,支持 KV 存储和 D1 SQLite 数据库。 它可帮助开发者在不自建基础设施的前提下完成部署、存储与扩展,是云服务选型的核心参考。

如何在 5 分钟内上手Cloudflare Workers 与边缘计算?

两步即可跑通:① 安装 Wrangler CLI — npm i -g wrangler;② 脚手架 — wrangler init my-worker(选择 "Hello World" 模板)。建议先用免费套餐验证流程,再接入生产环境。

Cloudflare Workers 与边缘计算 最容易踩的坑是什么?

最高频的问题是:超过 50ms CPU 限制 — 加密或大 JSON 解析撞墙。建议在上线前用 checklist 逐项核对,并在 CI 中加入策略与配置扫描。

Cloudflare Workers 与边缘计算 的最佳实践有哪些?

Cloudflare Workers 与边缘计算 的最佳实践包括:可缓存数据用 Cache API 而非 KV — 免费、更快、尊重 Cache-Control;handler 保持 1MB 以内 — Workers 包限制,大依赖用动态导入;全球读取用 D1 只读副本 — 主库单区域,副本在边缘。其中首条「可缓存数据用 Cache API 而非 KV — 免费、更快、尊重 Cache-Control」应作为团队默认规范写入 IaC 模板。

Cloudflare Workers 与边缘计算 如何控制成本与避免账单意外?

三招防超支:① 为所有资源打 env/team 标签并启用账单告警;② 用预算阈值触发 Slack/邮件通知;③ 定期用 Cost Explorer 审查闲置资源并清理。Cloudflare Workers 与边缘计算 多数提供免费套餐,先在免费额度内验证再放量。