首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >每月 20 刀让我忍无可忍,我用 OpenClaw 把项目从 Vercel 迁到了 Cloudflare

每月 20 刀让我忍无可忍,我用 OpenClaw 把项目从 Vercel 迁到了 Cloudflare

作者头像
俊哥AI
发布2026-06-18 11:34:05
发布2026-06-18 11:34:05
970
举报

这两天。 我在做一件憋了很久的事。

迁移。

把跑在 Vercel 上的项目,搬到 Cloudflare

为什么迁?

说出来其实很朴实:

Vercel 每个月收我 20 刀。

我受不了了。

不是说 Vercel 不好。 它真的很好用。 好用到你不用懂任何基础设施,点几下就能上线。

但好用是有代价的。

每个月看着账单扣款的时候。 我就会忍不住想一个问题:

我到底在为什么付费?

是技术能力? 还是"我懒得自己折腾"的溢价?

这次我决定动手了。

但这次有点不一样。

我没有一行一行自己扒代码。 没有一个坑一个坑靠 Google 趟。

我用的是 OpenClaw。

OpenClaw 是一个可以真正帮你干活的 AI Agent 平台。

不是问一句答一句的那种。 是你说"帮我把这个项目迁到 Cloudflare"。 它真的开始读你的代码、分析依赖、识别问题、一步步执行。

这次迁移,我全程用它跑。

然后我发现了一件事:

用 AI Agent 干工程活,不是"更方便了"。 而是你会被强迫比以前更清醒。

我助理给我的对照图

坑 1:Worker 的 runtime 不是 Node.js

OpenClaw 读完我的代码之后,第一条反馈:

"你这里用了 import crypto from 'crypto',在 Cloudflare Worker 里会报错,需要换成 Web Crypto API。"

我当时还有点懵。

crypto 不是标准库吗?

然后才想起来: Cloudflare Worker 跑的是 V8 Isolate,不是 Node.js。

它更接近浏览器环境。 不是所有 Node.js 原生模块都能用。

以前我对这个有模糊的认知。 但从来没有人在我每写一行相关代码的时候,立刻告诉我"这里会炸"。

OpenClaw 会。

坑 2:bcrypt 在 Worker 免费版直接超时

认证模块用的是 bcrypt 做密码哈希。 标准做法。

OpenClaw 扫到这里,停下来跟我说:

"Worker 免费版 CPU 时间限制是 10ms,bcrypt 一次哈希需要几百毫秒,建议换 PBKDF2。"

我:……

然后它直接帮我把哈希逻辑改成了 Web Crypto API 的 PBKDF2 实现。 同样安全。 Worker 原生支持。 CPU 消耗完全可控。

这个坑,我如果自己迁,大概率要等到线上报错才会发现。

OpenClaw 是在迁移过程中,提前就把它堵上了。

坑 3:better-auth + drizzle-orm 跟 D1 不兼容

我原来用 better-auth 做认证框架,配 drizzle-orm 操作数据库。

迁到 D1 之后。 炸了。

报的是那种玄学报错。 SQL 方言不对。事务方式不对。

OpenClaw 排查完之后结论很清晰:

"better-auth 的 drizzle 适配器和 D1 有兼容性问题,建议换 kysely-d1,对 D1 的支持更原生。"

然后它帮我把 ORM 层从 drizzle 迁到了 kysely-d1

这不是小改动。 所有 query 逻辑都要跟着重写。

但这件事一个人扛,很容易半途而废。 有 OpenClaw 在旁边一步步执行、一个问题一个问题解决—— 反而跑得很顺。

坑 4:D1 不支持交互式事务

D1 底层是 SQLite。 但它跑在边缘节点,事务不是本地同步的。

我原来有一段逻辑:

代码语言:javascript
复制
await db.begin()
await db.execute(sql1)
await db.execute(sql2)
await db.commit()

D1 里:直接报错。

OpenClaw 解释了原因,然后帮我改成了 D1 的 batch API 写法。 把多条 SQL 打包成一个原子操作提交。 语法变了,但逻辑完全对等。

坑 5:环境变量是两套,本地和线上不互通

Cloudflare 的环境变量管理有两套:

  • 本地开发读 .dev.vars
  • 线上 Worker 读 Dashboard 里配的 Secrets

两套独立的。 没有自动同步。

OpenClaw 在配置环节直接提示我:

"你需要同时维护本地的 .dev.vars 和线上的 wrangler secrets,缺一个都会导致对应环境拿不到变量。"

这种事看起来简单。 但就是这种"看起来简单"的细节,最容易在深夜被坑。

坑 6:域名切换时两边同时活跃,行为会乱

最后一步,准备把域名从 Vercel 切到 Cloudflare。

OpenClaw 在这里特意停下来跟我说:

"不要两边同时保持活跃状态,建议先在 Vercel 完全下线,等 TTL 刷新,再切 DNS,否则会出现同一域名请求不一致的情况。"

这种错误不会报错。 它是静默的乱。

同一个域名,不同设备拿到的是不同的后端。 你排查半天,找不到任何代码问题。

因为代码没问题。 是操作顺序的问题。

迁完之后算一笔账

Cloudflare 这边:

  • Worker:每天 10 万次请求以内,免费
  • D1 数据库:500MB 存储,每天 500 万次读,免费
  • Pages:静态托管,免费
  • KV / R2:有免费额度,超出再付

我现在这个项目的体量: 完全在免费额度以内。

一分不花。

Vercel 那边: 20 刀/月。 12 个月。 一年 240 刀。

不是说 240 刀很多。

但如果这 240 刀买来的只是"方便"。 而你其实可以用 Cloudflare 免费额度跑同样的东西。 那这 240 刀,就是在为"没搞清楚有免费选项"而付费。

迁完之后我第一个感受不是"省钱了"。 而是:

我应该早点迁的。

这次迁移最大的感受

我以为用 AI Agent 干工程活,最大的价值是"省时间"。

确实省了。 但这不是最重要的。

最重要的是:它会强迫你理解每一步在做什么。

不是帮你绕过坑。 而是带你把坑看清楚,再一起过去。

每次 OpenClaw 遇到问题,它都会先解释原因,再给方案。

这导致我迁完之后, 对这套技术栈的理解,比迁之前深了不止一倍。

bcrypt 为什么不行、D1 事务为什么这样设计、ORM 选型为什么会互相影响—— 这些我以前"知道一点"的东西, 这次我真的搞清楚了。

为什么我选择用 OpenClaw 来做这件事

说实话。 这种迁移工作,一个人扛是很消耗心力的。

不只是技术难度。 而是它需要你在极短的时间内, 在十几个不同的技术决策点上, 每一个都做出正确的判断。

一个人很容易:

  • 某个坑绕过去但没真正搞清楚
  • 某个方案凑合了但埋了隐患
  • 某个环节偷懒了但以后会出问题

有 OpenClaw 在一起跑, 它记得每一个细节。 它不会"算了先这样"。 它会一直盯着你把每一个问题真正解决掉。

这是我觉得 AI Agent 和普通 AI 工具最大的区别:

普通 AI 工具是"帮你查资料"。 AI Agent 是"和你一起把事情做完"。

最后

这次从 Vercel 到 Cloudflare。 表面上是一次平台迁移。

实际上是:

  • 一次技术债清算
  • 一次架构认知升级
  • 一次对"系统主权"的重新理解

而且这次是和 OpenClaw 一起完成的。

这让我更确定一件事:

未来真正有价值的能力,不是会用几个 AI 工具。 而是会用 AI Agent 把一件真实的事情,从头到尾跑通。

一句话总结:

我每月给 Vercel 交 20 刀。 迁到 Cloudflare 之后,这 20 刀没了。 但我得到的东西,比 20 刀值钱多了: 对自己系统更深的理解,和把事情真正做完的能力。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-03-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 俊哥AI出海 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档