mcpField
C
cloudflare

cloudflare

github.com/alphaonedev云与 DevOps45 次安装
代码仓库

关于 cloudflare

cloudflare 是通过 Cloudflare API 和 Wrangler 自动化管理基础设施的 skill,面向在脚本或 CI/CD 流水线中管理 DNS、Access、Pages、Workers 和 R2 的开发者。

主要功能

  1. 01管理 DNS 记录和区域
  2. 02部署和管理 Pages 站点
  3. 03配置 Access 策略
  4. 04上传和管理 Workers 脚本
  5. 05管理 R2 对象

适用场景

  1. 01在部署期间更新 DNS 记录
  2. 02使用 Pages 部署静态站点
  3. 03通过 Access 设置身份验证策略
  4. 04向 R2 存储上传对象

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/alphaonedev/openclaw-graph --skill cloudflare

安装后在 Claude Code 中输入/cloudflare确认已加载。

详细介绍

cloudflare

用途

此技能可通过编程方式访问 Cloudflare API,用于管理 DNS 记录、区域、Pages 站点、Access 策略、Workers 脚本和 R2 存储。它使用指定的账户 ID(YOUR_CLOUDFLARE_ACCOUNT_ID)安全地执行操作。

适用场景

使用此技能自动执行基础设施任务,例如在部署期间更新 DNS 记录、使用 Access 保护应用、通过 Pages 部署静态站点、使用 Workers 运行边缘计算、管理 R2 中的对象存储,或创建/删除区域。可在脚本、CI/CD 流水线中使用,也可用于将 Cloudflare 与其他服务集成。

主要功能

  • DNS:在区域中管理记录(A、CNAME、TXT)。
  • 区域:使用账户 ID 创建、列出、更新或删除区域。
  • Pages:部署和管理带自定义域名的静态站点。
  • Access:强制执行身份验证和授权策略。
  • Workers:编写处理请求和响应的边缘逻辑。
  • R2:处理对象存储操作,例如上传和删除。 身份验证需要将 API 令牌设置为 $CLOUDFLARE_API_TOKEN;在 API 请求中包含账户 ID。

使用模式

始终使用 $CLOUDFLARE_API_TOKEN 对请求进行身份验证。使用 HTTP 标头发起 API 调用(例如 Authorization: Bearer $CLOUDFLARE_API_TOKEN)。对于 CLI,请安装 Wrangler 并使用 wrangler login 登录。使用 JSON 负载构造请求,并通过状态码处理响应。API 端点前缀为 https://api.cloudflare.com/client/v4,并在路径中包含账户 ID,例如 /accounts/YOUR_CLOUDFLARE_ACCOUNT_ID/zones。

常用命令/API

  • 更新 DNS:使用 PUT 请求访问 /zones/{zone_id}/dns_records/{record_id},JSON 请求体示例:{"type":"A","name":"example.com","content":"192.0.2.1","ttl":3600}。
  • 创建区域:向 /zones 发送 POST 请求,请求体为 {"name":"example.com","account":{"id":"YOUR_CLOUDFLARE_ACCOUNT_ID"}}。
  • 部署 Pages:使用 Wrangler CLI:wrangler pages deploy ./build --project-name=my-site。
  • Access 策略:向 /access/policies 发送 POST 请求,请求体为 {"name":"Block IP","precedence":1,"decision":"deny","request":{"ip":"1.1.1.1"}}。
  • Workers 脚本:通过 PUT 请求上传至 /accounts/YOUR_CLOUDFLARE_ACCOUNT_ID/workers/scripts/my-worker,并附上脚本内容。
  • 上传 R2 对象:使用 PUT 请求将文件数据上传至 /accounts/YOUR_CLOUDFLARE_ACCOUNT_ID/r2/buckets/my-bucket/objects/my-file。 DNS 更新代码片段:
curl -X PUT "https://api.cloudflare.com/client/v4/zones/zone_id/dns_records/record_id" \
  -H "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
  -H "Content-Type: application/json" \
  --data '{"type":"A","name":"example.com","content":"192.0.2.1"}'

配置格式:将 API 令牌存储在 .env 中,格式为 CLOUDFLARE_API_TOKEN=your_token,并在脚本中加载。

集成说明

通过在环境中导出 $CLOUDFLARE_API_TOKEN 来进行集成。对于 Node.js,请使用 @cloudflare/workers SDK:通过 npm i @cloudflare/workers 安装,然后导入并使用令牌初始化。对于 Python,请使用 cloudflare 库:运行 pip install cloudflare,并使用 Cloudflare(api_token=os.environ['CLOUDFLARE_API_TOKEN']) 进行身份验证。始终验证响应中的账户 ID,以避免跨账户错误。对于 Wrangler,在执行命令前运行 wrangler whoami 验证登录状态。

错误处理

检查 HTTP 状态码:200-299 表示成功,4xx 表示客户端错误(例如令牌无效时返回 401 Unauthorized),5xx 表示服务器问题。对于 API 错误,请解析 JSON 响应正文中的 "errors" 数组,例如 {"errors":[{"code":1000,"message":"Bad request"}]}。对于临时错误(例如 429 Rate Limit),请使用指数退避重试。在脚本中使用 try-catch 块封装调用:

try {
  const response = await fetch('https://api.cloudflare.com/client/v4/...', { headers: { Authorization: `Bearer ${process.env.CLOUDFLARE_API_TOKEN}` } });
  if (!response.ok) throw new Error(`HTTP error: ${response.status}`);
} catch (error) {
  console.error('API call failed:', error.message);
}

记录详细的错误消息,包括端点和参数,以便调试。

具体用法示例

  1. 更新域名的 DNS A 记录:首先,通过 GET /zones?name=example.com 获取区域 ID。然后,使用记录 ID 进行更新:PUT /zones/zone_id/dns_records/record_id,并附上请求体 {"content":"new_ip_address"}。这样可以确保域名指向最新的服务器 IP。
  2. 部署 Workers 脚本:在 worker.js 中编写脚本,然后运行 wrangler publish --name my-worker。如需集成 API,请通过 PUT /accounts/YOUR_CLOUDFLARE_ACCOUNT_ID/workers/scripts/my-worker 上传脚本内容,然后通过 POST /zones/zone_id/workers/routes 将其绑定到路由。

图关系

  • 相关项:core-openclaw(集群)、用于记录管理的技能,如“dns”;用于边缘计算的“workers”;以及用于安全策略的“access”。
  • 依赖项:需要通过 Cloudflare API 进行身份验证;与外部技能集成,例如用于触发部署的“github”,或用于同步 R2 数据的“aws”。

评论

支持 Markdown