
最近,Cloudflare 宣布正式推出面向本地开发的远程绑定功能。该功能让开发人员能够连接到在 Cloudflare 账户中部署的生产资源,从而不必再使用本地模拟。
得益于这项新功能,开发人员在本地机器上运行 Worker 代码时就可以连接到已经部署的资源,例如 R2 存储桶和 D1 数据库,从而能够使用真实数据和服务对本地代码更改进行测试。
面向本地开发的远程绑定功能在 Wrangler v4.37.0、Cloudflare Vite 插件和 @cloudflare/vitest-pool-workers 包中均提供了支持。例如,开发人员可以告诉 Wrangler 或 Vite 将所有请求发送到 env.MY_BUCKET:
尽管所有对 env.MY_BUCKET 的请求都将被代理到远程资源,但 Worker 代码将在本地执行,速度更快,而且不需要向本地数据库中填充数据。此外,开发人员可将远程绑定与环境关联,从而在本地开发过程中访问测试数据,同时确保生产数据不受影响。
Cloudflare 高级系统工程师Samuel Macleod和 Web 开发人员Dario Piotrowicz阐释了绑定机制在生产环境中的底层运作原理。他们写道:
我们希望让开发人员能够轻松地访问远程资源,而无需更改他们生产环境中的 Worker 代码,因此我们找了一个解决方案,要求你在 Worker 中使用远程资源的地方获取数据……我们意识到,我们已经有一个现成的 API——就是我们在生产中使用的那一个!Worker 平台上的大多数绑定本质上都是服务绑定。
服务绑定是两个 Worker 之间的链接,允许它们之间通过 HTTP 或 JSRPC 通信。Macleod 和 Piotrowicz 补充道:
我们意识到,我们可以通过那个自然的网络边界来实现远程绑定。我们可以让本地运行时(workerd)将 env.KV.get()翻译成 HTTP 调用,然后直接发送到 KV 服务,从而绕过生产运行时,而不是让生产运行时将 env.KV.get()翻译成 HTTP 调用。
有了远程 KV 绑定,本地 Worker 将不再使用本地 KV 模拟器。取而代之,它会与远程代理客户端进行通信,而后者会连接到与真实 KV 存储关联的代理服务器,从而使本地 Worker 能够访问实时 KV 数据。社区对此反应积极,Dyords Abuzo写道:
不会再有这样的情况了,“它在我的机器上可以正常运行……但一到生产环境中就找不到数据?!”这是开发体验的巨大胜利,使得基于 Cloudflare Workers 的构建变得更加令人愉快。
Wrangler 程序包现在已经导出了 startRemoteProxySession 等实用工具,使未采用 Wrangler 开发环境的工具也能支持远程绑定。自 Wrangler v4.37.0 版本起(对应的 Vite 和 Vitest 插件版本分别为 v1.13.0 和 v0.9.0),所有项目均可使用远程绑定功能。开发人员只需在 Wrangler 配置中为任意绑定添加 remote: true 即可启用该功能。
原文链接:
https://www.infoq.com/news/2025/11/cloudflare-remote-bindings/







评论