Cloudflare Worker Dev 是一套关于 Cloudflare Workers 边缘计算开发的技能资料,覆盖 Workers、KV、Durable Objects 及相关开发实践。资料将其用途定位为构建高性能边缘 API,并用于无服务器 API、缓存、限流和实时功能等场景。
核心架构
资料用一个表格说明“何时用哪种服务”:
- Workers:用于请求处理、API 逻辑;特征是无状态,免费版 50ms CPU,付费版 30s。
- KV:用于缓存、配置、会话;特征是最终一致,读取快。
- Durable Objects:用于实时、协调;特征是强一致,单线程。
- R2:用于文件存储;特征是与 S3 兼容,无出口费用。
- D1:用于边缘 SQLite;特征是无服务器 SQL,适合读取。
主要能力
资料以代码示例形式给出以下能力:
- Worker 基础结构:定义 Env 接口,导出包含 fetch 与 scheduled 的默认对象,处理路由、CORS、错误捕获与 Cron 定时触发。
- CORS 处理:给出 CORS_HEADERS 常量、handleCORS 与 json 辅助函数,用于响应 OPTIONS 预检和返回 JSON。
- wrangler.toml 配置:包含名称、入口、compatibility_date、KV 命名空间绑定、环境变量、Cron 触发器和自定义路由等配置示例。
- KV 存储模式:put(含 TTL 与 metadata)、get、getWithMetadata、delete、list(按前缀)等操作示例;并给出基于 geohash 的缓存键生成与读缓存、后台写入的示例,以及在响应头中返回 X-Cache、X-Geohash 用于缓存调试。
- 限流:给出基于 IP 的 checkRateLimit 实现,使用 KV 记录计数与窗口起点,返回是否允许、剩余次数与重置时间,并在响应头返回限流信息。
- Durable Objects:给出 ChatRoom 类示例,通过 WebSocketPair 接受连接、广播消息、清理会话,并在主 Worker 中通过 idFromName 与 get 路由到房间。
使用方式
资料列出 Wrangler 相关命令:
- 开发:npx wrangler dev(本地)、npx wrangler dev --remote(针对真实 KV/DO)。
- 部署:npx wrangler deploy、npx wrangler deploy --env staging。
- 密钥:npx wrangler secret put API_KEY、npx wrangler secret list。
- KV 管理:npx wrangler kv:key list/get/delete,需指定 --namespace-id。
- 日志:npx wrangler tail、npx wrangler tail --format=pretty。
资料还给出错误码说明:1101 Worker threw exception、1102 CPU time limit exceeded、1015 被 Cloudflare 限流、524 源站超时(>100s)。
速查与反模式
速查部分给出:获取客户端 IP(CF-Connecting-IP)、获取国家(request.cf?.country)、后台任务(ctx.waitUntil)、流式响应、代理请求等写法。
反模式部分指出并给出正确做法:不要在热路径中 await KV 写入(应使用 ctx.waitUntil 后台写入);不要缺少 CORS 处理(应处理 OPTIONS 预检);不要把密钥写进 wrangler.toml(应使用 wrangler secret);不要忽视 KV 最终一致性(写入后立即读取可能返回旧值,强一致场景应使用 Durable Objects);不要在没有超时的情况下阻塞等待外部 API(应使用 AbortController 设置超时)。
适用场景与限制
适用场景由资料表述为:无服务器 API、缓存、限流、实时功能,以及基于 Workers + KV + Durable Objects 的边缘开发。资料提到 /references/ 目录下包含 kv-patterns.md、durable-objects.md、debugging.md 等详细指南,但未提供这些文件的具体内容。关于定价、免费额度细节、平台限制的完整清单、性能效果和安装命令之外的部署步骤,资料中暂无更多说明。