Cloudflare Operations 是一个面向 Cloudflare Workers 与 Wrangler 的边缘运维技能,内容覆盖运行时模式、绑定、本地开发、密钥、部署与 CI/CD、可观测性。资料中的生态事实以 2026-07 为验证基准。
版本背景:Wrangler v4.x;配置文件为 wrangler.jsonc(Cloudflare 对新项目的推荐格式,部分较新功能仅支持 JSON 配置;wrangler.toml 仍可用且在旧仓库中广泛存在);部署命令为 wrangler deploy(旧的 wrangler publish 已弃用)。Workers 现在可以托管静态资源,这是全栈与静态站点相对 Pages 的当前方向。
参考文件:references/bindings.md 覆盖每种绑定(KV/D1/R2/DO/Queues/Hyperdrive/AI/Vectorize/Service/Analytics Engine)的配置块、运行时 API、适用时机与一致性模型;references/workers-runtime.md 覆盖运行时 API、处理器(fetch/scheduled/queue/email/tail)、CORS、缓存、流式、WebSockets、Durable Objects 深入与限制;references/workers-runtime-gotchas.md 覆盖生产环境陷阱;references/deploy-and-cicd.md 覆盖部署、环境、密钥、Workers Builds、GitHub Actions + OIDC/API token、渐进式部署、回滚与可观测性;assets/wrangler.jsonc.template 是带注释的当前 wrangler.jsonc 模板。Access / Zero Trust 认证模式见 auth-ops 技能的 references/cloudflare-access.md。
Workers 与 Pages 选型:Cloudflare 已为 Workers 增加静态资源托管,单个 Worker 现在可同时服务静态站点、全栈应用或 API + SPA。新项目默认推荐 Workers + 静态资源;Pages 仍可用且未弃用,但 Workers 功能集更广、迭代更快(Durable Objects、Cron Triggers、Queues、更丰富的可观测性),也是 Cloudflare 投入的方向。纯静态站点可用 Workers + assets 绑定(仅资源模式,匹配文件的请求不会调用 Worker 代码);全栈/SPA + API/SSR 框架(Next、Astro、Remix、SvelteKit、Hono)使用框架的 Cloudflare 适配器(C3:npm create cloudflare@latest);已在 Pages 且满意可继续使用,仅在需要 Workers 独有功能时迁移;需要 Durable Objects / Cron Triggers / Queues / Tail Workers 时必须用 Workers。资源服务模式包括 asset-only(无 main,直接提供文件,匹配请求不计 Worker 调用)与 assets + Worker(先匹配文件,其余落到 fetch 处理器,或用 run_worker_first 让 Worker 先执行);代码中通过 env.ASSETS.fetch(request) 访问资源。
Wrangler 配置骨架(jsonc)包含 $schema、name、main、compatibility_date(必填,固定运行时版本,需谨慎升级并测试)、compatibility_flags(如 nodejs_compat)、observability、assets、kv_namespaces、d1_databases、r2_buckets、vars(仅非密钥配置)与 env(命名环境,用 --env staging 部署)。密钥绝不能放在 vars 中,应使用 wrangler secret put / .dev.vars。TOML 等价格式仍可解析,绑定结构一一对应;新仓库建议用 jsonc。
绑定选择速查:需要强一致性或协调 → Durable Objects;关系型查询 → D1;大文件 → R2;廉价全局缓存 → KV;后台任务 → Queues;外部 SQL 数据库 → Hyperdrive。KV 最终一致(约 60 秒传播),不适合“读己所写”;D1 是边缘 SQLite,库内强一致,读复制为异步;R2 为 S3 兼容对象存储,零出口费用;Durable Objects 单实例单线程即串行化,提供一致性,支持 SQLite 存储;Queues 为生产者绑定 + 消费者 Worker,支持重试与死信队列;Hyperdrive 为外部 Postgres/MySQL 提供连接池与边缘缓存,需要 nodejs_compat;Workers AI 通过 ai 绑定运行推理,常与 Vectorize 搭配做 RAG;Service 绑定实现 Worker 间零延迟 RPC。
最小 Worker 采用 ES 模块格式(export default { fetch }),env 携带所有绑定,ctx.waitUntil(promise) 在响应后执行后台工作;旧的 service-worker addEventListener("fetch") 格式为遗留写法。
本地开发与密钥:npm create cloudflare@latest 脚手架;wrangler dev 本地开发服务器(localhost:8787);wrangler dev --remote 在 Cloudflare 边缘运行;wrangler types 生成 TS 类型。本地密钥用 .dev.vars(dotenv 格式,需 gitignore,支持 .dev.vars.staging);部署用 wrangler secret put/list/delete;CI 批量用 wrangler secret bulk secrets.json;较新方式为 Cloudflare Secrets Store 绑定。
部署与 CI/CD:wrangler deploy(构建+上传+激活)、--env staging 部署命名环境、wrangler versions upload 上传但不生效、wrangler versions deploy 按比例分流、wrangler rollback 回滚、wrangler tail 流式日志。Workers Builds 为原生 git 连接 CI;GitHub Actions 使用 cloudflare/wrangler-action,以最小权限 API token(CLOUDFLARE_API_TOKEN + CLOUDFLARE_ACCOUNT_ID)认证。
可观测性:配置中 observability.enabled 开启 Workers Logs(默认关闭);wrangler tail 实时日志;Tail Workers 接收另一 Worker 的执行追踪;Analytics Engine 写入自定义时序指标。
常见陷阱包括:wrangler publish 已改名 deploy;wrangler.toml 与 .jsonc 的差异;缺少 compatibility_date;CPU 时间限制(默认每次调用 30 秒 CPU,等待 I/O 的墙钟时间可更长);脚本大小限制(免费 3 MB / 付费 10 MB gzip);KV 最终一致;Node 内置模块默认不可用需 nodejs_compat;密钥误放 vars;请求/响应体只能读一次需先 clone;esbuild 打包意外。
安装与设置:npm install -g wrangler(或 npx wrangler / npm create cloudflare@latest);wrangler login 本地 OAuth,CI 用 API token;复制 assets/wrangler.jsonc.template 并填入 ID;wrangler dev → wrangler deploy。技能还包含 scripts/check-cloudflare-facts.py 用于检测事实漂移(--offline 结构检查、--live 新鲜度检查),事实集存于 assets/cloudflare-facts.json。