SuperAPI AI 工具集

cloudflare-api

部署与运维

查看项目

更新于 10-14 05:33

技能介绍

用途

cloudflare-api 用于在 wrangler CLI 或 MCP 服务器不适合的场景下,直接调用 Cloudflare REST API。资料明确指出其适用方向是批量操作、跨区域(fleet 级)变更,以及 wrangler 未暴露的功能。

判断标准:单次操作 → 使用 MCP 或 wrangler;批量、跨区域或脚本化 → 直接调用 API。

与 wrangler / MCP 的能力对比

资料以对照表说明:部署 Worker、创建 D1 数据库属于 wrangler 与 MCP 已能胜任、本技能不处理的场景;而以下场景适合直接调用 API:

  • 批量更新 50 条 DNS 记录(wrangler 与 MCP 均较慢,本技能用批处理脚本)
  • 白标自定义主机名(wrangler 不支持,MCP 仅部分支持)
  • 邮件路由规则(wrangler 不支持,MCP 部分支持)
  • WAF/防火墙规则(wrangler 不支持,MCP 冗长)
  • 批量重定向规则
  • 跨 20 个 Zone 的区域设置(一次 fleet 脚本 vs 20 次单独调用)
  • 按标签/前缀清除缓存(脚本化时)
  • 批量 Worker 路由管理
  • 分析/日志查询(GraphQL)
  • 跨数据库 D1 查询/导出
  • R2 批量对象操作(S3 API + 批量)
  • KV 批量读写删
  • Vectorize 查询/删除(直接 API)
  • Queue 消息注入(直接 API)
  • 账户内全部资源盘点脚本

认证设置

推荐使用 API Token,在仪表盘 My Profile → API Tokens → Create Token 创建带作用域的令牌,并存储为环境变量 CLOUDFLARE_API_TOKEN。资料提供 verify 接口的测试命令。

令牌作用域原则为最小权限,常见预设包括:"Edit zone DNS"(DNS 操作)、"Edit zone settings"(区域配置变更)、"Edit Cloudflare Workers"(Worker 路由管理)、"Read analytics"(GraphQL 分析)。

账户与 Zone ID 可通过 /zones 接口查询,资料提醒将 ID 存入环境变量或配置文件,不要在脚本中硬编码。

主要工作流

批量 DNS 操作

从文件读取记录批量创建(示例含 0.25 秒速率限制睡眠);导出某 Zone 全部记录为 CSV 备份或迁移;按 IP 查找并批量替换(如 IP 迁移)。

自定义主机名(白标客户域名)

用于 SaaS 场景中客户使用自有域名(如 app.clientdomain.com → 你的 Worker)。示例包含创建自定义主机名(含 SSL 配置)、列出主机名、检查状态;客户侧需添加 CNAME 记录。

邮件路由规则

启用 Zone 邮件路由;创建转发规则(如将 info@ 转发至真实邮箱);创建 catch-all 规则;列出规则。

缓存清除

支持三种方式:整站清除(purge_everything)、指定 URL 清除、按缓存标签清除(需 Enterprise 或缓存标签头)、按前缀清除。

重定向规则(批量)

通过 rulesets 的 http_request_dynamic_redirect 阶段创建重定向规则;从 CSV 批量生成 rules 数组的 Python 示例也一并给出。

区域设置(跨区域)

获取所有 active 状态 Zone,循环应用统一设置。常见 fleet 设置包括 ssl(full/strict)、min_tls_version、always_use_https、security_level、browser_cache_ttl。

WAF / 防火墙规则

创建 WAF 自定义规则(如按国家封禁);创建速率限制规则(示例为 API 每 IP 每分钟 100 次)。

Worker 路由

列出、创建、删除路由。

分析(GraphQL)

通过 /graphql 端点查询,示例为 Worker 分析相关字段。

速率限制

资料列出:多数 API 调用为 1200 请求/5 分钟;DNS 记录操作共享同一限制;缓存清除为 1000 次/天;Zone 创建为 5 次/分钟。脚本建议在调用之间加入 sleep 0.25,并使用 p-limit 或 xargs -P 4 控制并发。

脚本生成规范

资料要求生成的脚本置于 .jez/scripts/ 目录,并满足:从环境变量读取 API Token(绝不硬编码)、列表操作处理分页、每次调用后用 jq '.success' 做错误检查、调用间加入速率限制睡眠、记录执行内容、尽可能支持 --dry-run。技术选型建议:简单操作优先 curl + jq;复杂逻辑(分页循环、错误处理、CSV 处理)用 Python;更大脚本可用 TypeScript 搭配 cloudflare npm 包获得类型安全。

API 参考

基础 URL 为 https://api.cloudflare.com/client/v4/,完整文档位于 https://developers.cloudflare.com/api/。接口遵循一致模式:GET /zones 列表、POST /zones 创建、GET /zones/:id 读取、PATCH /zones/:id 更新、DELETE /zones/:id 删除、PUT /zones/:id/settings/:name 更新设置。所有响应统一为 { success: bool, errors: [], messages: [], result: {} }。

参考文件 references/developer-platform-api.md 涵盖 D1、R2、KV、Workers、Vectorize、Queues 的 API 模式。

限制

资料未说明该技能的收费、价格与平台兼容性细节,暂未提供。