Cloudflare Workers 调试与线上部署
前 10 篇学完了开发、存储、定时任务,这一篇把完整的开发闭环串起来,覆盖本地调试、线上日志、正式部署、自定义域名和版本回滚。
完整开发闭环
一个功能的完整流程是
写代码 → 本地调试 → 线上部署 → 查看线上日志 → 出问题回滚 → 迭代
下面逐个环节讲解对应工具。
本地调试
wrangler dev 运行期间,代码里的 console.log 会直接输出到终端
export default {
async fetch(request, env, ctx) {
console.log("收到请求", request.method, request.url);
const data = { name: "Alice" };
console.log("返回数据", JSON.stringify(data));
return Response.json(data);
},
};
调试要点
| 技巧 | 说明 |
|---|---|
| console.log 打点 | 输出变量值,观察执行流程 |
| 临时返回调试信息 | 把中间结果拼进响应体直接查看 |
| 触发定时任务 | curl http://localhost:8787/__scheduled?cron=*+*+*+*+* |
调试线上资源
本地默认模式用的是模拟环境,如果要调试线上真实的 KV、D1、密钥,用远程模式
wrangler dev --remote
--remote 模式下代码还在本地编辑,热更新依旧生效,但数据资源全部指向线上,非常适合排查”本地正常线上异常”的问题。
查看线上日志
线上代码里的 console.log 不会直接显示,需要用命令实时查看
wrangler tail
执行后终端进入监听状态,每次请求到达都会输出日志,包含请求信息和你打印的内容。排查线上问题时先开 tail,再复现问题,日志一目了然。
仪表盘也有可视化的查看入口,在 Worker 的 指标 和 日志 页面可以查看请求量、错误率、异常堆栈等数据。
正式部署
本地调试通过后,部署到线上
wrangler deploy
部署成功后输出线上地址
Uploaded my-worker (1.02 sec)
Deployed my-worker
https://my-worker.你的子域.workers.dev
访问这个地址即可线上访问。之后每次修改代码,执行 wrangler deploy 覆盖更新,每次部署都会生成一个新版本,旧的版本会保留。
自定义域名绑定
workers.dev 子域名适合开发测试,正式上线建议绑定自己的域名。前提是域名已经托管在 Cloudflare(DNS 接入)。
绑定步骤
- 进入仪表盘的 Workers 和 Pages
- 选择目标 Worker
- 进入 设置 页面
- 找到 域和路由
- 点击 添加自定义域
- 输入你的域名,例如 api.example.com
- 确认绑定
绑定完成后,访问 https://api.example.com 就能到达这个 Worker。Cloudflare 会自动配置 DNS 和 HTTPS 证书,不需要额外操作。
版本回滚
每次部署生成的新版本可能存在故障,需要快速回退到上一个可用版本。
命令行方式
# 查看版本列表
wrangler versions list
# 回滚到上一个版本
wrangler rollback
# 回滚到指定版本
wrangler rollback <版本ID>
仪表盘方式,在 Worker 的 部署 页面可以看到所有版本的部署记录,找到目标版本点击 回滚 即可,效果与命令相同。
回滚是线上事故的第一响应手段。牢记顺序,先回滚恢复服务,再慢慢排查问题原因。
生产环境注意事项
| 事项 | 说明 |
|---|---|
| 固定 compatibility_date | 保证平台行为不随升级而变 |
| 密钥走 secrets | 见Cloudflare Workers 环境变量与密钥管理 |
| 数据库迁移先本地后线上 | 见Cloudflare Workers D1 数据库 |
| 发布前先 tail 观察 | 部署后立刻开 tail 盯几分钟 |
| 保存可靠的版本记录 | 回滚依赖版本记录,别删旧版本 |
到这里,从开发到上线的完整闭环已经建立。剩余两篇进入进阶难点,先学 Durable Objects 状态协调。
上一篇 Cloudflare Workers 定时任务
下一篇 Cloudflare Workers Durable Objects