SuperAPI AI 工具集

cf-cli

部署与运维

查看项目

更新于 10-30 23:46

技能介绍

用途

cf 是 Cloudflare 官方命令行界面,用于公开的 Cloudflare API 和 Workers 项目。API 部分包含 2,900 多条命令,多数由 API schema 生成。该工具处于 Beta 阶段,命令、配置和构建输出在稳定版发布前可能变化。

主要能力

  • 命令检索:用 cf cli search "任务描述" 在本地检索匹配命令,无需凭证,最多返回 5 条 JSON 匹配结果。
  • 请求结构查看:用 cf schema <命令> 查看 API 请求的 method、path、参数和 body 字段;用 cf <command> --help 查看参数与选项。
  • 安全执行:--dry-run 以 JSON 打印请求但不发送,且无需凭证。
  • 输出约定:结果以 JSON 输出到标准输出,状态与错误信息输出到标准错误,便于管道传给 jq 或重定向。命令失败时以非零状态退出。
  • Workers 项目:支持 cf init、cf dev、cf deploy,以及类型化的 cloudflare.config.ts;支持从 Wrangler 迁移(cf migrate)。
  • 资源操作:可在终端查找、创建和删除资源,包括 DNS、zone、存储等。

使用方式

安装与登录:

npm install --global cf   # 同时安装 cf 和 cloudflare 两个等价命令
cf --version
cf auth whoami

需要 Node.js 22.18 或更高版本,不支持 Bun。如果 PATH 中已有另一个名为 cf 的工具,改用 cloudflare。

cf auth login 会打印链接和一次性代码并打开浏览器;在远程机器、SSH 或容器中加 --no-browser,从其他设备批准;加 --force 可重新登录。cf 使用自己的凭证,不复用 Wrangler 登录。自动化代理和 CI 无法完成交互登录,应设置 CLOUDFLARE_API_TOKEN。

查找命令示例:

cf cli search "create a DNS record"   # 本地执行,无需凭证;整个任务需加引号
cf schema d1 create
cf deploy --help

cf cli search 只接受一个参数,第一个词之后未加引号的内容会被当作未知命令解析。

安全注意事项

  • 先预览:对未验证的命令先使用 --dry-run。
  • 删除被中止仍可能返回 0:非交互会话中,不带 --force 的破坏性命令会向标准错误打印 Aborted. 并以 0 退出,零退出码不代表资源已删除。
  • 谨慎使用 --force:某些命令中它同时是 API 参数,例如 cf workers delete --force 会连带删除被其他 Workers 引用的 Worker。
  • --local 适用范围有限:仅对 KV 键、D1 数据库(cf d1 raw、cf d1 migrations list|apply)和 R2 对象有效;其他命令(包括 cf d1 query)会返回错误而非调用 API。

与 Wrangler 的选择

  • 存在 cloudflare.config.ts:使用 cf。
  • 存在 wrangler.jsonc、wrangler.json 或 wrangler.toml 且无 cloudflare.config.ts:dev、build、deploy 继续用 Wrangler,不要在该项目运行 cf dev、cf build、cf deploy,以免生成忽略 Wrangler 文件的新配置或失败;cf 资源命令(DNS、zone、存储)可并行使用。仅在用户要求时运行 cf migrate,先 cf migrate --dry-run 预览,再执行并处理生成的 cloudflare.config.ts 中的 TODO(@cloudflare) 注释。
  • 两者都不存在:使用 cf,不安装 Wrangler 或创建 Wrangler 配置文件。

暂不支持的命令

cf 尚未支持全部 Wrangler 命令,以下需用 npx wrangler 执行(Wrangler 不读取 cloudflare.config.ts,需传入 Worker 名称):

  • 实时日志:npx wrangler tail <WORKER_NAME>
  • 单个 secret:npx wrangler secret put <SECRET_NAME> --name <WORKER_NAME>;也可通过向 cf deploy 或 cf workers versions create 传入 --secrets-file <PATH> 随新版本上传 secrets。

完整列表参见 Wrangler 到 cf 参考文档中的“Commands not yet supported”。

适用场景

在终端中检索并执行 Cloudflare API 命令、管理 DNS/zone/存储等资源、开发和部署 Workers,以及在 CI 或自动化代理中通过 API Token 调用 Cloudflare。

限制

处于 Beta;部分 Wrangler 命令尚不支持;--local 仅限特定资源类型;交互式登录无法在 CI 和无人值守代理中完成;命令与分页选项因命令而异。