SuperAPI AI 工具集

cloudflare-development

部署与运维

查看项目

更新于 10-15 13:42

技能介绍

用途

该技能为在 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 的最终一致性;未实现恰当的限流;在代码中硬编码密钥;忽视冷启动优化。

限制

资料未提供定价、具体配额数值、支持平台版本或效果数据,暂未提供。