关于 cloudflare
cloudflare 是通过 Cloudflare API 和 Wrangler 自动化管理基础设施的 skill,面向在脚本或 CI/CD 流水线中管理 DNS、Access、Pages、Workers 和 R2 的开发者。
主要功能
- 01管理 DNS 记录和区域
- 02部署和管理 Pages 站点
- 03配置 Access 策略
- 04上传和管理 Workers 脚本
- 05管理 R2 对象
适用场景
- 01在部署期间更新 DNS 记录
- 02使用 Pages 部署静态站点
- 03通过 Access 设置身份验证策略
- 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);
}
记录详细的错误消息,包括端点和参数,以便调试。
具体用法示例
- 更新域名的 DNS A 记录:首先,通过 GET
/zones?name=example.com获取区域 ID。然后,使用记录 ID 进行更新:PUT/zones/zone_id/dns_records/record_id,并附上请求体{"content":"new_ip_address"}。这样可以确保域名指向最新的服务器 IP。 - 部署 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”。