用途
该技能为在 Cloudflare 边缘平台上开发应用提供最佳实践指南,涵盖 Workers、Pages、KV 存储、D1 数据库、R2 对象存储与 Durable Objects,目标是帮助开发者编写适合边缘执行、轻量且快速的代码。
核心原则
- 编写轻量、快速、针对边缘执行优化的代码
- 尽量减少冷启动时间与执行时长
- 为不同使用场景选择合适的存储方案
- 遵循边缘计算的安全最佳实践
- 利用 Cloudflare 全球网络提升性能
Cloudflare Workers
资料给出基础 Worker 结构示例,包含 fetch 处理、路由判断、错误捕获与返回响应,并使用 satisfies ExportedHandler<Env>。环境类型 Env 接口中包含 KVNamespace、D1Database、R2Bucket、DurableObjectNamespace 与环境变量字符串等绑定。
最佳实践包括:使用 TypeScript 获得类型安全;在边缘正确处理错误;实现请求校验;使用 ctx.waitUntil() 处理后台任务;尽量减少外部 API 调用。
Wrangler 配置
给出 wrangler.toml 结构示例,包含 name、main、compatibility_date、[vars] 环境变量,以及 KV、D1、R2 绑定和 Durable Objects 绑定与 migrations 配置。
KV 存储
给出写入(put,可设置 expirationTtl 与 metadata)、读取(get,type 为 json)、按前缀列举(list)的用法。最佳实践:用于读多写少且最终一致的工作负载;为缓存数据设置合适 TTL;使用 metadata 补充键信息;实现缓存失效策略;注意 KV 的最终一致性模型。
D1 数据库
给出参数化查询(prepare().bind().all())、批量操作(batch)、只取首条结果(first)的用法,并提供迁移 SQL 示例,包含建表与索引。最佳实践:始终使用参数化查询;创建合适的索引;多次写入使用批量操作;保持查询简单高效;用迁移管理 schema 变更。
R2 对象存储
给出上传(put,含 httpMetadata 与 customMetadata)、下载(get 并返回 body)、列举(list 按前缀)、删除(delete)的用法。最佳实践:设置合适的内容类型;大文件使用分片上传;实现恰当的访问控制;用于客户端直传的预签名 URL;用逻辑前缀组织对象。
Durable Objects
给出 ChatRoom 类示例,包含构造函数保存 state 与 sessions、fetch 中处理 WebSocket 升级(WebSocketPair、返回 101)、handleSession 中 accept 与消息、关闭事件处理。最佳实践:用于协调与有状态逻辑;正确处理 WebSocket;使用 storage API 做持久化;处理休眠以优化成本;按单点协调模式设计。
Cloudflare Pages
给出项目结构示例(public 静态资源、functions 下的 Pages Functions 与 _middleware.ts、src 源码、wrangler.toml 配置),并给出 onRequestGet 与 onRequestPost 的 PagesFunction 写法示例。
边缘安全
- 请求校验:检查 Content-Type 与方法、检查 Origin 与允许来源列表
- 认证:校验 Authorization 头是否以 Bearer 开头并验证 token
- 限流:基于 KV 记录
ratelimit:${ip},超过阈值(示例为 100 次)则拒绝,窗口为 60 秒
性能优化
- 缓存策略:使用
caches.default的 match/put,设置 Cache-Control,并通过ctx.waitUntil异步写入缓存 - 后台处理:立即返回响应,使用
ctx.waitUntil(processInBackground(...))异步执行
测试
本地开发命令:wrangler dev、wrangler dev --persist、wrangler dev --env staging。单元测试示例使用 wrangler 的 unstable_dev,在 beforeAll 中启动 worker,afterAll 停止,并对 /api/health 断言状态码 200。
部署
wrangler deploy、wrangler deploy --env production、wrangler secret put API_KEY。CI/CD 示例为 GitHub Actions 工作流,在 push 到 main 时使用 cloudflare/wrangler-action@v3 与 CLOUDFLARE_API_TOKEN 密钥部署。
常见误区
资料列出以下需要避免的问题:未在边缘正确处理错误;过多外部 API 调用;忽视 Worker CPU 与内存限制;未按场景选择合适的存储;忘记 KV 的最终一致性;未实现恰当的限流;在代码中硬编码密钥;忽视冷启动优化。
限制
资料未提供定价、具体配额数值、支持平台版本或效果数据,暂未提供。