用途
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 等主题。