cf 可以直接管理 Cloudflare 资源,而无需 Workers 项目。本指南以 DNS 记录为例,展示大多数资源命令遵循的模式:查找资源、列出其内容、预览更改、进行更改,然后清理。
- 安装
cf并登录。如果使用 API 令牌,它需要有权限编辑该 zone 中的 DNS 记录。 - 将域名添加到 Cloudflare 账户。本指南使用
example.com。 - (可选)安装
jq↗ 以过滤 JSON 输出。
列出你可以访问的 zone:
cf zones list结果是 JSON 数组。要查找单个域名,请按名称过滤:
cf zones list --name example.com记下该 zone 的 id。zone 范围的命令接受 zone ID 或域名。详情请参阅选择 zone。
列出该 zone 中的 DNS 记录:
cf dns records list --zone example.com选项可以缩小结果。例如,仅列出 A 记录:
cf dns records list --zone example.com --type Acf dns records list 返回一页结果。要获取更多结果,请使用 --page 和 --per-page。
添加 --dry-run 查看命令将发送的请求。Dry run 以 JSON 打印方法、URL 和请求体,然后退出,不发送任何内容。它不需要凭据。
cf dns records create --zone <ZONE_ID> --body '{"type":"A","name":"test","content":"192.0.2.1","proxied":true}' --dry-run{
"command": "cf dns records create",
"method": "POST",
"url": "https://api.cloudflare.com/client/v4/zones/<ZONE_ID>/dns_records",
"pathParams": {
"zone-id": "<ZONE_ID>"
},
"query": {},
"bodyKind": "json",
"body": {
"type": "A",
"name": "test",
"content": "192.0.2.1",
"proxied": true
}
}在 dry run 中使用 zone ID。Dry run 不会查找域名,因此预览会在应使用 ID 的位置显示域名。
--body 接收 JSON 请求体。包括此操作在内的某些操作只通过 --body 接受输入。请求体接受的字段请参阅 Create DNS Record API 参考。
去掉 --dry-run 运行同一命令:
cf dns records create --zone example.com --body '{"type":"A","name":"test","content":"192.0.2.1","proxied":true}'cf 会以 JSON 打印新记录,包括其 id。
由于结果在标准输出上为 JSON,你可以将其管道传输到 jq。打印每条 A 记录的名称和内容:
cf dns records list --zone example.com --type A | jq -r '.[] | "\(.name) \(.content)"'获取你创建的记录的 ID:
cf dns records list --zone example.com --name test.example.com | jq -r '.[0].id'按 ID 删除记录:
cf dns records delete <RECORD_ID> --zone example.comcf 在删除任何内容之前会请你确认。默认答案为否。
在脚本或 CI 作业等非交互会话中,cf 无法询问。它会打印问题和 Aborted.,不进行任何更改,并以状态码 0 退出。要在不确认的情况下删除,请传入 --force:
cf dns records delete <RECORD_ID> --zone example.com --force描述任务以查找对应命令:
cf cli search "purge cached files for a URL"cf cli search 以 JSON 打印最多五个匹配命令,最佳匹配在前。每个匹配项包含命令和简短摘要。它在本地运行,不需要凭据。
要查看命令接受的参数和选项,请添加 --help:
cf cache purge --help要查看生成命令发送的 API 请求(包括方法、路径、参数和请求体字段),请将其传给 cf schema:
cf schema zones create要按产品浏览命令,请向 cf、某个产品(例如 cf dns)或任意命令添加 --help。
- 从脚本和流水线运行
cf,请参阅在 CI 中使用cf。 - 让编码 Agent 访问相同命令,请参阅将
cf用于编码 Agent。