DevOps6 min read

Wrangler 自动化与日志体系:从脚本到 CI

基础设施防线要求「不打补丁战」,因此 wrangler 流水线需要原子化。本文从 scripts/use-wrangler-config.mjs 起步,讲解如何把账号切换、日志 tail、SQL 执行全部写进自动化任务,并融入 CI。

账号切换:模板即规范

脚本接受 test/prod 或自定义 *.toml 作为参数,将 wrangler.account-*.toml 复制为 wrangler.toml。CI 里可以在 job 前执行 pnpm wrangler:config:test 然后 cache dist,以此保证环境一致。

  • 脚本会校验文件是否存在,缺失时直接 exit 1 阻断流水线
  • 命令输出 [wrangler-config] 日志,方便在 CI 面板中检索

日志追踪:pnpm logs:*

借助 wrangler pages deployment tail,可以持续输出 preview/production 的请求详情。把该命令封装成 pnpm logs:test|prod 后,开发者本地 / CI 都能在统一入口订阅日志。

pnpm wrangler:config:test && wrangler pages deployment tail \
  --project-name cf-nuxt-pages-kit \
  --environment preview \
  --format pretty

CI 集成:一次成型

在 GitHub Actions 中,把 wrangler CLI 与 pnpm 脚本结合:install 依赖、运行 lint/test、pnpm deploy:test。若需要部署 production,可以在保护分支上触发单独 workflow,以避免手动 patch。CI 中统一使用 wrangler.account-*.toml,保证本地与流水线环境一致。

多环境与回滚策略

利用 Cloudflare Pages 的 preview/production 模型,可以为每个 PR 自动构建 preview,主干合并后再部署到 production。通过 wrangler pages deployment list/tail,你可以快速发现问题并回滚到上一个稳定 deployment,而不是在服务器上做危险操作。

  • 在 CI 中为 main 分支配置「部署到 production」,为其他分支部署到 preview
  • 遇到故障时,通过 Dashboard 或 wrangler 指定 deployment 进行回滚
  • 日志与指标保持在同一个观测面板中,减少排障时间

Further Reading