{/* This page is auto-generated from the skill's SKILL.md by website/scripts/generate-skill-docs.py. Edit the source SKILL.md, not this page. */}

Cloudflare Temporary Deploy

通过 wrangler --temporary 免账号部署 Worker 到线上。

Skill 元数据

来源可选——使用 hermes skills install official/web-development/cloudflare-temporary-deploy 安装
路径optional-skills/web-development/cloudflare-temporary-deploy
版本1.0.0
作者Hermes Agent
许可证MIT
平台linux, macos, windows
标签cloudflare, workers, wrangler, deploy, temporary, agent, serverless, web-development

参考:完整 SKILL.md

INFO

以下是 Hermes 在触发此 skill 时加载的完整 skill 定义。这是 skill 激活时 agent 所看到的指令内容。

Cloudflare Temporary Deploy Skill

用 wrangler deploy --temporary 把一个 Cloudflare Worker 部署到线上 workers.dev URL,零账号配置。Cloudflare 会准备一个一次性账户、部署,并打印一个 60 分钟内有效的认领 URL;未认领的账户会自动删除。这给 agent 一个紧凑的 写→部署→验证 闭环,无需任何 OAuth、注册或复制粘贴 token。

本 skill 不覆盖生产部署(那些请用 wrangler login + 永久账号),也不覆盖下方临时账户限额之外的非 Worker Cloudflare 产品。

使用时机

当用户想要以下能力时加载本 skill:

  • 把 agent 写的代码发布到线上 URL,而不必先创建 Cloudflare 账户——"部署这个并给我一个链接"
  • 在后台/自主会话中迭代,浏览器 OAuth 步骤会成为硬阻断
  • 快速原型或评估 Worker,用一个一次性、可认领的目标
  • 构建自验证部署闭环——部署、curl 线上 URL、确认输出与代码一致、重新部署

不要使用的情况

  • 生产或 CI/CD → 用永久账号(wrangler login 或 CLOUDFLARE_API_TOKEN)。只要存在任何凭据,--temporary 就会报错退出。
  • Wrangler 已认证 → --temporary 按设计返回错误。仅当用户明确想要一次性部署时才先跑 wrangler logout。
  • 长期托管 → 临时部署在 60 分钟后删除,除非被认领。

前提条件

  • Wrangler 4.102.0 或更高。 这是引入 --temporary 的版本。更早版本没有它。用 npx wrangler@latest --version 验证。
  • Node 18+ / npm(或 npx、yarn、pnpm)。无需全局安装——npx wrangler@latest 即可。
  • 当前没有 Cloudflare 凭据。 --temporary 只在 Wrangler 未认证时工作:无 OAuth 登录、无 CLOUDFLARE_API_TOKEN / CLOUDFLARE_API_KEY 环境变量、无 ~/.wrangler / ~/.config/.wrangler 缓存的 OAuth。按 terminal 工具的环境原样使用;不要设置这些变量。
  • 网络可访问 cloudflare.com 和 workers.dev。
  • 使用 --temporary 即表示接受 Cloudflare 的服务条款和隐私政策。

运行方式

每一步都用 terminal 工具。务必固定版本(wrangler@latest 或 wrangler@4.102.0 或更新),避免误跑一个缺少该标志的旧全局 wrangler。

  1. 脚手架化一个最小 Worker(项目已存在则跳过)。一个 Worker 需要 wrangler.toml(或 wrangler.jsonc)和一个入口脚本。最小 TypeScript 示例——用 write_file 写:

    wrangler.jsonc:

    {
      "name": "hello-agent",
      "main": "src/index.ts",
      "compatibility_date": "2025-01-01"
    }
    

    src/index.ts:

    export default {
      async fetch(): Promise<Response> {
        return new Response("hello cloudflare");
      },
    };
    
  2. 从项目目录用 --temporary 部署:

    npx wrangler@latest deploy --temporary
    

    工作量证明检查会增加一段短暂的自动延迟。成功时 Wrangler 打印一行 Account: <name> (created)(或 (reused))、一个 Claim URL、以及线上 https://<worker>.<account>.workers.dev URL。

  3. 从输出解析 URL。用 helper 可靠地提取它们,而非肉眼看:

    npx wrangler@latest deploy --temporary 2>&1 | python scripts/parse_deploy_output.py
    

    (把 scripts/parse_deploy_output.py 解析为本 skill 的绝对路径。)它打印 JSON:{"live_url", "claim_url", "account", "account_state", "expires_minutes", "deployed"}。

  4. 验证部署真的上线了——不要只信部署日志。curl 线上 URL 并确认响应体与代码返回的一致:

    curl -sS <live_url>
    
  5. 迭代。 改代码,用同一个 npx wrangler@latest deploy --temporary 重新部署。在 60 分钟窗口内 Wrangler 会复用缓存的临时账户(Account: <name> (reused)),所以 URL 保持稳定。再次 curl 确认变更。

  6. 把认领 URL 交给用户。 告诉他们:在 60 分钟内打开它即可保留该部署和任何资源;如果不认领,一切自动删除。把认领 URL 当机密对待——它授予账户所有权。

快速参考

步骤命令
查版本(需 4.102.0+)npx wrangler@latest --version
部署(无账号)npx wrangler@latest deploy --temporary
部署 + 解析 URLnpx wrangler@latest deploy --temporary 2>&1 \| python scripts/parse_deploy_output.py
验证线上curl -sS <live_url>
清除缓存的临时账户npx wrangler@latest logout

临时账户产品限额

产品临时账户上的限额
Workers部署到 workers.dev
Static Assets最多 1,000 个文件,每个 5 MiB
KV允许
D11 个数据库,每库 100 MB / 共 100 MB
Durable Objects允许
Hyperdrive2 个配置,10 条连接
Queues最多 10
SSL/TLS 证书允许

常见陷阱

  • --temporary 不在 wrangler deploy --help 里,也不是全局标志。 它被有意隐藏并动态浮现:当未认证的 wrangler deploy 失败时,Wrangler 会打印"用 --temporary 重跑"。不要因为 --help 没列就断定标志缺失——改为查版本。
  • 旧的全局 wrangler。 一个过时的全局安装 wrangler(< 4.102.0)静默地没有该标志。始终调用 npx wrangler@latest(或固定 >=4.102.0),这样你控制版本。
  • 已存在认证 → 硬错误。 如果跑过 wrangler login,或设了 CLOUDFLARE_API_TOKEN/CLOUDFLARE_API_KEY,--temporary 报错。要么为本 shell 取消该变量,要么 wrangler logout。绝不在不告知用户的情况下清除他们的真实凭据。
  • 限流。 过快创建临时账户会失败。在 60 分钟窗口内复用缓存账户(直接重新部署),而不是强行新建;若被限流,等待或用永久账户。
  • 60 分钟硬过期,不可延长。 如果部署必须存活超过一小时,用户必须认领它。把这一点讲清楚。
  • 重新部署后 curl 可能短暂返回旧响应体。 workers.dev 有短暂的边缘缓存;(reused) 行加上新的 Current Version ID 即确认部署成功,即使 curl 在几秒内显示陈旧内容。在断定重新部署失败之前,重新 curl 或加一个防缓存查询串。
  • 不要把认领 URL 当成"只是个链接"记进共享对话记录。 它等同于凭据。

验证

  • npx wrangler@latest --version 返回 >= 4.102.0。
  • npx wrangler@latest deploy --temporary 打印一个 workers.dev 线上 URL 和一个 claim-preview?claimToken= 认领 URL。
  • curl -sS <live_url> 返回 Worker 代码产生的确切响应体。
  • 第二次部署报告 Account: <name> (reused),且线上 URL 不变。
  • 解析脚本自检通过:python scripts/parse_deploy_output.py --selftest。