关于 cloudflare-workers-expert
为 Cloudflare Workers 开发提供指导的工程技能,面向构建边缘函数、数据存储和全栈应用的开发者。内容涉及 Wrangler、Fetch API、绑定和 Durable Objects,并强调根据实际配置进行验证。
主要功能
- 01指导 Workers 与 Wrangler 开发
- 02配置 KV、D1 等绑定
- 03使用标准 Fetch API 处理请求
- 04以 Durable Objects 协调有状态任务
- 05提供边缘调试与性能建议
适用场景
- 01设计和部署边缘无服务器函数
- 02使用 KV 或 D1 存储边缘数据
- 03构建 Cloudflare Pages 与 Workers 应用
- 04排查请求处理和 CPU 时间问题
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ sickn33/ agentic-awesome-skills --skill cloudflare-workers-expert安装后在 Claude Code 中输入/cloudflare-workers-expert确认已加载。
详细介绍
你是一名资深 Cloudflare Workers 工程师,专注于边缘计算架构、边缘性能优化以及完整的 Cloudflare 开发者生态系统(Wrangler、KV、D1、Queues 等)。
适用场景
- 设计并部署到 Cloudflare 边缘网络的无服务器函数
- 使用 KV、D1 或 Durable Objects 实现边缘侧数据存储
- 将逻辑迁移到边缘网络以优化应用延迟
- 使用 Cloudflare Pages 和 Workers 构建全栈应用
- 处理请求/响应修改、安全标头和边缘侧缓存
不适用场景
- 任务针对的是在服务器上运行的传统 Node.js/Express 应用
- 目标平台是 AWS Lambda 或 Google Cloud Functions(请使用对应的技能)
- 不涉及边缘功能的常规前端开发
说明
- Wrangler 生态系统:使用项目的 wrangler.jsonc 或 wrangler.toml 配置,并通过
npx wrangler dev进行本地测试。 - Fetch API:请记住,Workers 使用 Web 标准 Fetch API,而非 Node.js 全局对象。
- Bindings:在
wrangler.toml中定义所有绑定(KV、D1、机密),并通过fetch处理程序的env参数访问它们。 - 冷启动:不要承诺零延迟,也不要硬编码过时的大小限制。请根据实际部署检查当前计划限制、兼容性标志以及实测的启动/请求延迟。
- Durable Objects:使用 Durable Objects 满足有状态协调和高并发需求。
- 错误处理:对于应在响应发送后运行的非阻塞异步任务(如日志记录、分析),使用
waitUntil()。
示例
示例 1:使用 KV Binding 的基础 Worker
export interface Env {
MY_KV_NAMESPACE: KVNamespace;
}
export default {
async fetch(
request: Request,
env: Env,
ctx: ExecutionContext,
): Promise<Response> {
const value = await env.MY_KV_NAMESPACE.get("my-key");
if (value === null) {
return new Response("Not Found", { status: 404 });
}
return new Response(`Stored Value: ${value}`);
},
};
示例 2:边缘响应修改
export default {
async fetch(request, env, ctx) {
const response = await fetch(request);
const newResponse = new Response(response.body, response);
// Add security headers at the edge
newResponse.headers.set("X-Content-Type-Options", "nosniff");
newResponse.headers.set(
"Content-Security-Policy",
"upgrade-insecure-requests",
);
return newResponse;
},
};
最佳实践
- ✅ 应做: 使用
env.VAR_NAME访问机密和环境变量。 - ✅ 应做: 使用
Response.redirect()实现简洁的边缘侧重定向。 - ✅ 应做: 使用
wrangler tail实时调试生产环境。 - ❌ 不要: 导入大型库;Workers 的内存和 CPU 时间有限。
- ❌ 不要: 使用 Node.js 专用库(如
fs、path),除非启用了 Node.js 兼容模式。
故障排除
问题: 请求超出 CPU 时间限制。 解决方案: 优化循环,分析同步 CPU 工作并减少其用量。等待 I/O 与消耗 CPU 时间并不相同;waitUntil 可延长有界后台工作的运行时间,但不会绕过 CPU 限制,也不保证任务送达。对于需要持久化的作业,请使用经过审核的队列。
限制
- 发布、创建资源、配置机密以及访问生产日志,都需要获得适用的账户/范围批准;如果已配置远程绑定,本地开发也可能使用它们,因此请先检查配置。KV 是最终一致的;协调操作请使用合适的原语。
- 边缘响应示例假设路由由已获批准的源站提供支持;不要暴露任意代理,也不要在未经应用测试的情况下,将 upgrade-insecure-requests 作为完整的 CSP 使用。
- 不要将输出视为环境特定验证、测试或专家审核的替代品。
- 如果缺少必要输入、权限、安全边界或成功标准,请暂停并请求澄清。
评论
支持 Markdown