跳转到内容
本站为社区维护的非官方中文翻译,与 Cloudflare, Inc. 无关联。本站不提供账户登录,请勿在任何非官方站点输入您的 Cloudflare 账户信息。官方文档:developers.cloudflare.com

从命令行管理资源

最后更新 查看 MarkdownAgent 设置

cf 可以直接管理 Cloudflare 资源,而无需 Workers 项目。本指南以 DNS 记录为例,展示大多数资源命令遵循的模式:查找资源、列出其内容、预览更改、进行更改,然后清理。

开始之前

  • 安装 cf 并登录。如果使用 API 令牌,它需要有权限编辑该 zone 中的 DNS 记录。
  • 将域名添加到 Cloudflare 账户。本指南使用 example.com。
  • (可选)安装 jq ↗ 以过滤 JSON 输出。

1. 查找 zone

列出你可以访问的 zone:

cf zones list

结果是 JSON 数组。要查找单个域名,请按名称过滤:

cf zones list --name example.com

记下该 zone 的 id。zone 范围的命令接受 zone ID 或域名。详情请参阅选择 zone。

2. 列出 DNS 记录

列出该 zone 中的 DNS 记录:

cf dns records list --zone example.com

选项可以缩小结果。例如,仅列出 A 记录:

cf dns records list --zone example.com --type A

cf dns records list 返回一页结果。要获取更多结果,请使用 --page 和 --per-page。

3. 预览更改

添加 --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 参考。

4. 创建记录

去掉 --dry-run 运行同一命令:

cf dns records create --zone example.com --body '{"type":"A","name":"test","content":"192.0.2.1","proxied":true}'

cf 会以 JSON 打印新记录,包括其 id。

5. 过滤输出

由于结果在标准输出上为 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'

6. 删除记录

按 ID 删除记录:

cf dns records delete <RECORD_ID> --zone example.com

cf 在删除任何内容之前会请你确认。默认答案为否。

在脚本或 CI 作业等非交互会话中,cf 无法询问。它会打印问题和 Aborted.,不进行任何更改,并以状态码 0 退出。要在不确认的情况下删除,请传入 --force:

cf dns records delete <RECORD_ID> --zone example.com --force

7. 查找其他命令

描述任务以查找对应命令:

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。

后续步骤

这篇文档对您有帮助吗?