SuperAPI AI 工具集

cloudflare

部署与运维

查看项目

更新于 10-16 10:43

技能介绍

用途

Cloudflare 技能用于从终端管理 Cloudflare 基础设施,涵盖 Pages、Workers、KV、R2、D1、Queues、Vectorize、Hyperdrive、密钥管理等,并支持在 Workers 上构建有状态 AI 智能体以及通过边缘无头 Chrome 进行网页抓取与爬取。

前置条件

安装:

npm install -g wrangler

认证(打开浏览器 OAuth 流程):

wrangler login

验证:

wrangler whoami

替代 wrangler login 的环境变量:

  • CLOUDFLARE_API_TOKEN — 限定范围的 API Token(推荐用于 CI/CD)
  • CLOUDFLARE_ACCOUNT_ID — 账户 ID(可在仪表盘 URL 中找到)

主要能力

Pages

静态站点部署的主要用例(Next.js 输出 'export'、Astro 等)。 快速开始:

npm run build && wrangler pages deploy out --project-name mysite

带提交跟踪的部署:

wrangler pages deploy out --project-name mysite --commit-hash $(git rev-parse HEAD) --commit-message "$(git log -1 --format=%s)"

预览部署(非生产分支):

wrangler pages deploy out --project-name mysite --branch staging

项目管理:

wrangler pages project create mysite --production-branch main
wrangler pages project list
wrangler pages project delete mysite

部署历史与回滚:

wrangler pages deployment list --project-name mysite
wrangler pages deployment tail --project-name mysite

回滚方式:重新部署先前的构建目录,或在仪表盘提升早期部署。

自定义域名:自定义域名管理仅限仪表盘,wrangler 无法为 Pages 项目添加/删除自定义域名。路径:Workers & Pages → 项目 → Custom Domains → Add,Cloudflare 会自动创建 DNS 记录并配置 TLS。

Pages 配置文件:将 _headers 和 _redirects 放在静态资源目录(例如 Next.js、Astro、Vite 的 public/),构建过程会复制到输出根目录。

Workers

npm create cloudflare@latest my-worker
wrangler dev
wrangler deploy
wrangler tail my-worker

注意:wrangler init 已弃用,请改用 npm create cloudflare@latest。

Agents SDK 与 Code Mode

在 Cloudflare Workers 上构建具有持久状态、可消费 MCP 工具、可执行沙盒动态代码的有状态 AI 智能体。Code Mode 将 AI SDK 与 MCP 工具转换为 TypeScript API,由 LLM 编写代码,在隔离的 V8 Worker 沙盒中执行(毫秒级冷启动,默认阻止 fetch/connect)。 快速开始:

npm create cloudflare@latest my-agent -- --template agents
npm install @cloudflare/codemode ai zod

关键概念:

  • Agent<Env, State>:Workers 上有状态智能体的基类(继承 DurableObject)
  • createCodeTool():将 AI SDK 工具封装为 LLM 编写代码所针对的单一代码工具
  • DynamicWorkerExecutor:在隔离 V8 沙盒中运行 LLM 生成的 TypeScript
  • this.mcp.getAITools():在 Agent 内消费外部 MCP 工具
  • generateTypes():从工具定义自动生成 TypeScript 声明
  • worker_loaders 绑定:Code Mode 沙盒在 wrangler.jsonc 中必需 使用场景:静态 API 端点或 cron 用标准 Worker;有状态对话智能体用 Agents SDK;LLM 动态组合多个工具用 Code Mode;消费外部 MCP 服务器用 Agents SDK 配合 this.mcp。 注意:Dynamic Worker Loader API 生产环境处于封闭测试,可通过 wrangler dev 在本地使用。

存储与数据服务

  • KV:键值存储(kv namespace create/list、kv key put/get/list/delete)
  • R2:对象存储(S3 兼容)(r2 bucket create/list、r2 object put/get/delete)
  • D1:SQLite 数据库(d1 create/list、d1 execute --remote、d1 migrations apply --remote)
  • Queues:Workers 之间的消息队列(queues create/list/delete、queues consumer add/remove)
  • Vectorize:AI/嵌入向量数据库(vectorize create/list/delete、vectorize insert)
  • Hyperdrive:外部数据库连接池(hyperdrive create/list/delete) 重要:D1 命令默认操作本地开发数据库,需加 --remote 指向生产:
wrangler d1 execute my-database --command "SELECT * FROM users" --remote

密钥

wrangler secret put SECRET_NAME
wrangler secret list
wrangler secret bulk secrets.json

常见工作流

GitHub Actions CI/CD 示例:

- name: Deploy to Cloudflare Pages
  uses: cloudflare/wrangler-action@v3
  with:
    apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
    accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
    command: pages deploy out --project-name mysite

注意:CI/CD(非交互式)中需先用 wrangler pages project create 创建项目,自动创建仅在交互式下有效。

跟踪生产日志:

wrangler tail my-worker --format pretty
wrangler pages deployment tail --project-name mysite

Browser Rendering(网页抓取与爬取)

基于 Cloudflare 边缘无头 Chrome,是 Firecrawl 的预算替代方案。免费层:10 分钟/天、5 次爬取/天、每次 100 页。静态抓取(--no-render)在测试期免费。 快速开始:

python3 ~/.claude/skills/cloudflare/scripts/cf_browser.py markdown https://example.com
python3 ~/.claude/skills/cloudflare/scripts/cf_browser.py markdown https://example.com --no-render
python3 ~/.claude/skills/cloudflare/scripts/cf_browser.py crawl https://docs.example.com --limit 50
python3 ~/.claude/skills/cloudflare/scripts/cf_browser.py screenshot https://example.com -o page.png
python3 ~/.claude/skills/cloudflare/scripts/cf_browser.py pdf https://example.com -o page.pdf
python3 ~/.claude/skills/cloudflare/scripts/cf_browser.py json https://example.com --prompt "Extract product names and prices"

认证:使用 CLOUDFLARE_ACCOUNT_ID + CLOUDFLARE_API_TOKEN(首选)或 CLOUDFLARE_GLOBAL_API_KEY + CLOUDFLARE_EMAIL(回退),均位于 ~/.config/env/secrets.env。 定价:免费层 10 分钟/天、5 作业/天、100 页/作业;付费层含 10 小时/月,之后 $0.09/小时,单作业最多 100,000 页。

工具选择参考

  • 干净 markdown 且可靠:firecrawl scrape --only-main-content
  • 便宜的 JS 渲染抓取:cf_browser.py markdown URL(免费 10 分钟/天,之后 $0.09/小时)
  • 免费静态页面获取:cf_browser.py markdown URL --no-render(测试期免费)
  • 预算内的多页爬取:cf_browser.py crawl URL(5 次免费爬取/天,每次 100 页)
  • 增量重爬:cf_browser.py crawl --modified-since
  • 反爬/Cloudflare 绕过:scrapling --stealth

限制

  • Pages 自定义域名管理仅限仪表盘,wrangler 不支持。
  • D1 命令默认操作本地数据库,需加 --remote 访问生产。
  • Dynamic Worker Loader API 生产环境处于封闭测试。
  • Browser Rendering 免费层有额度限制。

故障排查

  • 检查认证:wrangler whoami
  • 重新认证:wrangler logout && wrangler login
  • 检查版本:wrangler --version
  • 详细调试:WRANGLER_LOG=debug wrangler pages deploy out --project-name mysite

参考文档

  • references/wrangler-commands.md:完整 Wrangler CLI 命令参考及所有标志
  • references/pages-config.md:Pages 配置:_headers、_redirects、构建预设、环境变量
  • references/browser-rendering-api.md:Browser Rendering REST API:端点、参数、定价、限制
  • references/agents-sdk-codemode.md:Agents SDK 与 Code Mode:API、wrangler 配置、安全性、示例