用途
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 配置、安全性、示例