Skip to content

参考:Workers 运行时、存储矩阵与计费速查

基于 Cloudflare Workers · 核于 2026-08

速查

  • Workers 定位:基于 V8 isolates 的边缘 Serverless,330+ 城市就近执行,近乎无冷启动。
  • 运行时:V8 isolate(非容器),Web 标准 API(Fetch/Streams/Crypto),不是 Node,无 fs/原生模块。
  • 冷启动:~5ms(V8 code caching 缓存字节码),vs Lambda 容器 500ms-3s。
  • 计费:请求数 + CPU 时间(非墙钟);I/O 等待不计费,适合等待密集型。
  • 存储:KV(最终一致键值)/ Durable Objects(强一致有状态)/ R2(对象存储零出口费)/ D1(边缘 SQLite)。
  • 框架:Hono(边缘事实标准,零依赖、TS 优先、跨运行时)。
  • 工具:Wrangler CLI(dev/deploy/tail)+ Miniflare 本地仿真。

一、Workers vs Lambda vs 容器

维度Cloudflare WorkersAWS Lambda容器(Fargate/自建)
运行时V8 isolatesFirecracker 微 VM完整 Linux 容器
冷启动~5ms200ms-3s(SnapStart ~200ms)视实例,秒级
部署330+ 城市边缘单区域(多区域要手动复制)单区域
语言JS/TS(+WASM: Rust/Python)Node/Python/Java/Go/.NET/Rust任意
原生模块✅(Linux 二进制)
计费请求数 + CPU 时间请求数 + 执行时长实例时长(常驻)
请求时长上限10ms-30s CPU15 分钟无(常驻)
适合边缘鉴权/代理/低延迟事件处理/BFF/重计算长任务/有状态/重负载

二、存储四件套对比

存储一致性适合局限
KV最终一致(秒级同步)配置/缓存/特性开关(读多写少)单 key ~1 写/秒,不强一致
Durable Objects强一致(单点)限流/WebSocket/协同/计数单节点(远处 RTT 高)
R2强一致(写后可读)图片/视频/备份(零出口费)操作次数(Class A 写)计费
D1读副本最终一致 / 写主强中小型结构化数据(边缘 SQL)大规模写要换中心化 DB
Queues至少一次削峰、异步任务需配消费者 Worker
Cache API请求级缓存响应(省 KV 读/出站流量)每节点独立,非全局

三、计费速查

资源免费付费($5/月)超额
请求数10 万/天1000 万/月$0.30/百万
CPU 时间10ms/请求30s/请求;1000 万 CPU-ms/月$0.02/百万 CPU-ms
KV 读10 万/天1000 万/月$0.50/百万
KV 写1000/天100 万/月$5/百万
KV 存储1 GB1 GB$0.50/GB-月
R2 存储10 GB10 GB$0.015/GB-月
R2 出口(杀手锏)
D1 行读500 万/天250 亿/月$0.001/百万
D1 存储5 GB5 GB$0.75/GB-月

四、运行时 API 速查

Web 标准 API用途
fetch()发 HTTP 请求(取代 Node http
Request / Response请求/响应对象
Headers / URL头/URL 解析
ReadableStream / WritableStream流式数据
crypto.subtle哈希/签名(取代 Node crypto
TextEncoder / TextDecoder编码
atob / btoaBase64
caches.defaultCache API(请求级缓存)
Cloudflare 扩展用途
env.MY_KVKV Binding
env.MY_DO.fetch()Durable Object 调用
env.MY_DB.prepare()D1 查询
ctx.waitUntil(p)延迟到请求后执行(写日志)
ctx.passThroughOnException()异常时回退到源站

五、Hono 速查

ts
import { Hono } from "hono";
const app = new Hono<{ Bindings: Env }>();

app.get("/", (c) => c.text("hi"));
app.post("/u", async (c) => {
  const body = await c.req.json();
  await c.env.MY_KV.put(body.id, JSON.stringify(body));
  return c.json({ ok: true });
});
app.get("/api/*", middlewareA, middlewareB); // 中间件链
export default app;

六、易错点清单

  • "Workers 就是 Node.js":错。Workers Runtime 是 Web 标准 API,fs/child_process/原生模块。依赖 sharp/bcrypt/canvas 的包跑不了,要迁 WASM 或换纯 JS 实现。
  • "边缘执行就一定快":错。Worker 在边缘快,但 fetch(中心化 PG) 的 RTT 抹平优势。数据库要就近(D1/KV/DO/Hyperdrive)。
  • "KV 是强一致":错。KV 是最终一致,全球同步需秒到几十秒。强一致场景(扣款/库存)用 Durable Objects 或 D1 主节点。
  • "计费按执行时长":错。按 CPU 时间,I/O 等待不计费。await fetch 等 800ms 不增加账单。
  • "全局变量能跨请求":错。isolate 处理完可能被回收,全局变量不持久化。状态用 KV/DO。
  • "CPU 密集任务也能跑":风险。免费版 10ms/请求上限;CPU-ms 是核心计量,重计算账单暴涨。迁 Lambda 或 Workers AI。
  • "KV 当数据库高频写":错。单 key ~1 写/秒。高频写换 DO/D1。
  • "Durable Objects 也能就近读":错。DO 单点(哈希到固定节点),远处访问有 RTT。它解决强一致,不解决就近读。

权威链接