name: cloudflare
description: 使用 Wrangler CLI 管理 Cloudflare Workers、KV、D1、R2 和密钥。适用于部署 Worker、管理数据库、存储对象或配置 Cloudflare 资源。涵盖 Worker 部署、KV 命名空间、D1 SQL 数据库、R2 对象存储、密钥管理和日志追踪。
通过 wrangler CLI 管理 Cloudflare Workers 及相关服务。
npm install -g wrangler 或使用项目本地 npx wranglerwrangler login(通过浏览器进行 OAuth 认证)wrangler whoami# 初始化新 Worker
wrangler init <name>
# 本地开发
wrangler dev [script]
# 部署
wrangler deploy [script]
# 列出部署
wrangler deployments list
# 查看部署详情
wrangler deployments view [deployment-id]
# 回滚
wrangler rollback [version-id]
# 删除 Worker
wrangler delete [name]
# 追踪日志(实时)
wrangler tail [worker]
# 添加/更新密钥(交互式)
wrangler secret put <key>
# 从标准输入添加密钥
echo "value" | wrangler secret put <key>
# 列出密钥
wrangler secret list
# 删除密钥
wrangler secret delete <key>
# 从 JSON 文件批量上传
wrangler secret bulk secrets.json
# 创建命名空间
wrangler kv namespace create <name>
# 列出命名空间
wrangler kv namespace list
# 删除命名空间
wrangler kv namespace delete --namespace-id <id>
# 写入键值对
wrangler kv key put <key> <value> --namespace-id <id>
# 读取键值对
wrangler kv key get <key> --namespace-id <id>
# 删除键值对
wrangler kv key delete <key> --namespace-id <id>
# 列出所有键
wrangler kv key list --namespace-id <id>
# 批量操作(JSON 文件)
wrangler kv bulk put <file> --namespace-id <id>
wrangler kv bulk delete <file> --namespace-id <id>
# 创建数据库
wrangler d1 create <name>
# 列出数据库
wrangler d1 list
# 查看数据库信息
wrangler d1 info <name>
# 执行 SQL 命令
wrangler d1 execute <database> --command "SELECT * FROM users"
# 执行 SQL 文件
wrangler d1 execute <database> --file schema.sql
# 本地执行(用于开发)
wrangler d1 execute <database> --local --command "..."
# 导出数据库
wrangler d1 export <name> --output backup.sql
# 删除数据库
wrangler d1 delete <name>
# 迁移管理
wrangler d1 migrations create <database> <name>
wrangler d1 migrations apply <database>
wrangler d1 migrations list <database>
# 创建存储桶
wrangler r2 bucket create <name>
# 列出存储桶
wrangler r2 bucket list
# 删除存储桶
wrangler r2 bucket delete <name>
# 上传对象
wrangler r2 object put <bucket>/<key> --file <path>
# 下载对象
wrangler r2 object get <bucket>/<key> --file <path>
# 删除对象
wrangler r2 object delete <bucket>/<key>
# 创建队列
wrangler queues create <name>
# 列出队列
wrangler queues list
# 删除队列
wrangler queues delete <name>
Wrangler 支持 TOML 和 JSON/JSONC 配置格式:
wrangler.toml — 传统格式wrangler.json 或 wrangler.jsonc — 较新格式,支持 JSON 模式⚠️ 重要提示: 如果两种格式的文件同时存在,JSON 格式优先。请选择一种格式,避免因同时存在导致 TOML 文件的修改被忽略。
{
"$schema": "./node_modules/wrangler/config-schema.json",
"name": "my-worker",
"main": "src/index.ts",
"compatibility_date": "2024-12-30"
}
name = "my-worker"
main = "src/index.ts"
compatibility_date = "2024-12-30"
包含绑定配置的示例:
name = "my-worker"
main = "src/index.ts"
compatibility_date = "2024-12-30"
# KV 绑定
[[kv_namespaces]]
binding = "MY_KV"
id = "xxx"
# D1 绑定
[[d1_databases]]
binding = "DB"
database_name = "my-db"
database_id = "xxx"
# R2 绑定
[[r2_buckets]]
binding = "BUCKET"
bucket_name = "my-bucket"
# 环境变量
[vars]
API_URL = "https://api.example.com"
# 密钥(通过 `wrangler secret put` 设置)
# 在 Worker 代码中通过 env.SECRET_NAME 引用
静态资源(适用于 Next.js 等框架):
name = "my-site"
main = ".open-next/worker.js"
compatibility_date = "2024-12-30"
compatibility_flags = ["nodejs_compat"]
[assets]
directory = ".open-next/assets"
binding = "ASSETS"
wrangler deploy -e production
wrangler deploy -e staging
自定义域名必须在 Cloudflare 控制面板的 Worker 设置 > 域名与路由中配置,或通过 Cloudflare API 配置。Wrangler 不直接管理自定义域名。
# 为开发环境创建本地 D1/KV/R2 实例
wrangler dev --local
wrangler deployments list
wrangler deployments view
关于 DNS/域名管理,请参阅 cloudflare 技能(直接使用 Cloudflare API)。
| 问题 | 解决方案 |
|---|---|
| "未认证" | 运行 wrangler login |
| Node 版本错误 | 需要 Node.js v20+ |
| "未找到配置文件" | 确保配置文件存在(wrangler.toml 或 wrangler.jsonc),或使用 -c path/to/config 指定路径 |
| 配置更改被忽略 | 检查是否存在 wrangler.json/wrangler.jsonc — JSON 文件优先于 TOML 文件 |
| 绑定未找到 | 检查 wrangler.toml 中的绑定配置是否与代码引用匹配 |