Previews 让每个分支在同一个 Worker 下拥有隔离、接近生产的环境。每个 Preview 都配置独立的变量、密钥和绑定(binding),在独立的 URL 上提供服务,并拥有独立的可观测性。
Worker Previews 需要 Wrangler 4.135.0 或更高版本。请更新项目依赖,因为项目内命令不会使用更新的全局安装。
之前用过 Version URL 或 Wrangler 环境?请参阅比较工作流,了解它们与 Previews 的差异,以及我们推荐的分支测试实践。
运行 npx wrangler preview 会在同一个 Worker 下为当前分支创建或更新 Preview。你用 npx wrangler deploy 部署生产环境,用 npx wrangler preview 在合并前测试分支。
| 分支 | 命令 | 会发生什么 |
|---|---|---|
main |
npx wrangler deploy |
使用生产设置部署到生产环境。 |
feature/login |
npx wrangler preview |
使用独立设置创建或更新 Preview。 |
每个 Preview 有两类 URL。可以在 workers.dev、自定义域或两者上提供服务。
- Preview URL:始终提供最新部署。与团队分享此 URL,以便始终看到分支的最新版本。
- Deployment URL:指向某一次具体部署,且永不改变。用于引用或比较确切版本,例如在 PR 审查中链接某次部署。
| 主机类型 | Preview URL | Deployment URL |
|---|---|---|
workers.dev |
<preview-name>-<worker-name>.<subdomain>.workers.dev |
<deployment-id>-<worker-name>.<subdomain>.workers.dev |
| 自定义域 | <preview-name>.app.example.com |
<deployment-id>-<preview-name>.app.example.com |
为防止搜索引擎索引 Preview,请使用带有 X-Robots-Tag: noindex 响应标头的 workers.dev URL。对于自定义域 Preview URL,请使用 Cloudflare Access。
Previews 不会继承生产设置。请在 Wrangler 配置文件的 previews 块中定义。当你在某个分支上运行 npx wrangler preview 时,Wrangler 会使用该分支的 previews 块创建或更新其 Preview。更多信息请参阅配置。
密钥不能存储在配置文件或版本控制中,请使用命令将密钥应用到所有新 Preview 或单个 Preview。
Cloudflare 会为每个 Preview 自动预配新的 Durable Object namespace 和 container 实例。将 Preview 绑定到独立资源时,KV、D1、R2 和其他资源会被隔离。完整矩阵请参阅资源与隔离。
Workflow 绑定使用现有 Workflow,不会创建 Preview 专用 Workflow。来自 Preview 的 service binding 会调用被绑定 Worker 的生产部署。路由和 Cron Trigger 面向生产。Queue 消费者无法指向 Preview。详情请参阅限制。
Preview URL 默认公开。使用 Cloudflare Access 要求登录。你可以保护账户下所有 Preview、某个 Worker 的 Preview,或特定主机名。详情见自定义域。
| 限制 | Free 计划 | 付费计划 |
|---|---|---|
| 每个 Worker 的 Preview | 100 | 500 |
| 每个 Preview 的部署 | 100 | 100 |
达到限制时,Cloudflare 会自动删除最旧的项以腾出空间:
- Preview 限制:删除最近部署时间最早的 Preview。
- 部署限制:删除该 Preview 中最旧的部署。
你也可以自行用 npx wrangler preview delete --name <preview-name> 删除 Preview。拉取请求清理示例请参阅删除已关闭拉取请求的 Preview。