SuperAPI AI 工具集

cloudflare-expert

部署与运维

查看项目

更新于 10-15 12:11

技能介绍

用途

Cloudflare Expert 是一个面向 Cloudflare Workers、边缘计算、CDN 优化和 Cloudflare 安全服务的专家级技能。当用户提到边缘计算、CDN、Workers 或 WAF,或相关任务时,可使用该技能获取指导。

主要能力

该技能覆盖以下 Cloudflare 服务与概念:

  • Cloudflare Workers(无服务器边缘计算)
  • CDN 与缓存
  • DDoS 防护
  • Web 应用防火墙(WAF)
  • DNS 管理
  • 负载均衡
  • Workers KV(键值存储)
  • Durable Objects

边缘计算相关能力包括:将代码部署到全球、降低延迟、在边缘处理、分布式状态以及实时应用。

开发者工具方面涉及:Wrangler CLI、Workers Playground、Edge APIs 以及分析与日志。

代码示例概览

技能中提供了多类可参考的代码示例:

  • 基础 Worker:使用 export default { async fetch(request, env, ctx) { ... } } 返回响应。
  • 高级路由:按 url.pathname 分支处理 /api/users、/api/posts 等路径,未匹配时返回 404。
  • 带 JSON 的 API 端点:GET 时从 env.USERS_KV 读取 JSON,POST 时写入 KV 并返回 201,其他方法返回 405。
  • Workers KV 存储操作:put(可带 metadata、expirationTtl)、get(可指定 type: 'json')、getWithMetadata、delete、list(可带 prefix)。
  • 缓存模式:封装 CachedAPI 类,先查 KV 缓存,未命中再拉取并写入带 TTL 的缓存。

缓存策略

  • Cache API 的 cache-first:使用 caches.default,未命中时 fetch 并设置 Cache-Control: max-age=3600 后写入缓存。
  • stale-while-revalidate:先返回缓存响应,同时通过 ctx.waitUntil 在后台刷新缓存。
  • 自定义缓存键:示例中移除查询参数,并根据 User-Agent 判断移动端/桌面设备,将 device 写入缓存键;随后按 /api/ 路径选择 stale-while-revalidate,静态资源选择 cache-first。

边缘函数示例

  • HTML 改写:使用 new HTMLRewriter().on('head', ...) 注入脚本。
  • 基于地理位置的请求路由:读取 request.cf.country,按国家选择不同 API 端点(US/EU/default),默认回退到 global-api。
  • A/B 测试:读取 Cookie 中的 variant,没有则随机分配 A 或 B,请求对应版本并设置 Set-Cookie。

Wrangler CLI 使用方式

示例中的命令包括:

wrangler init my-worker
wrangler dev
wrangler publish
wrangler publish --env production
wrangler tail
wrangler kv:namespace create "MY_KV"
wrangler kv:key put --namespace-id=<id> "key" "value"
wrangler kv:key get --namespace-id=<id> "key"
wrangler publish --new-class Counter
wrangler secret put SECRET_NAME

wrangler.toml 配置

配置示例包含:

  • 基本字段:name、main、compatibility_date。
  • kv_namespaces 绑定(如 MY_KV、CACHE_KV)。
  • [durable_objects] 绑定(如 COUNTER、CHAT_ROOM)及 [[migrations]]。
  • [vars] 环境变量(如 ENVIRONMENT = "production")。
  • routes 路由模式(如 { pattern = "example.com/*", zone_name = "example.com" })。
  • [triggers] 的 Cron 触发器(如 crons = ["0 */6 * * *"])。

最佳实践与反模式

性能方面:在边缘积极缓存、减少 Worker 执行时间、使用 Workers KV 存储全局数据、实现连接池、优化缓存键、使用 stale-while-revalidate、减少外部请求。

安全方面:验证所有输入、实现限流、使用 secrets 存放敏感数据、设置安全响应头、正确实现 CORS、全程使用 HTTPS、记录安全事件。

开发方面:使用 TypeScript 获得类型安全、用 wrangler dev 本地测试、实现正确的错误处理、监控 Worker 指标、使用环境变量、对 Worker 进行版本管理、记录 API 端点。

反模式包括:频繁在 KV 中存储大量数据、在 Worker 中执行长时间运行的计算、不实现缓存、硬编码密钥、忽略限流、没有错误处理、过多的外部 API 调用。

参考文档

技能附带以下参考链接:

  • Cloudflare Workers: https://workers.cloudflare.com/
  • Wrangler CLI: https://developers.cloudflare.com/workers/wrangler/
  • Workers Examples: https://developers.cloudflare.com/workers/examples/
  • Durable Objects: https://developers.cloudflare.com/workers/learning/using-durable-objects/
  • Workers KV: https://developers.cloudflare.com/workers/runtime-apis/kv/

详细材料随技能提供,可按需读取,包括请求/响应处理、Durable Objects 等主题。