[ PROMPT_NODE_24484 ]
Workers 配置说明
[ SKILL_DOCUMENTATION ]
# Workers 配置
## wrangler.jsonc (推荐)
c
{
"$schema": "./node_modules/wrangler/config-schema.json",
"name": "my-worker",
"main": "src/index.ts",
"compatibility_date": "2025-01-01", // 新项目请使用当前日期
// 绑定 (不可继承)
"vars": { "ENVIRONMENT": "production" },
"kv_namespaces": [{ "binding": "MY_KV", "id": "abc123" }],
"r2_buckets": [{ "binding": "MY_BUCKET", "bucket_name": "my-bucket" }],
"d1_databases": [{ "binding": "DB", "database_name": "my-db", "database_id": "xyz789" }],
// 环境
"env": {
"staging": {
"vars": { "ENVIRONMENT": "staging" },
"kv_namespaces": [{ "binding": "MY_KV", "id": "staging-id" }]
}
}
}
## 配置规则
**可继承**: `name`, `main`, `compatibility_date`, `routes`, `workers_dev`
**不可继承**: 所有绑定 (`vars`, `kv_namespaces`, `r2_buckets` 等)
**仅限顶层**: `migrations`, `keep_vars`, `send_metrics`
**新项目请务必将 `compatibility_date` 设置为当前日期**
## 绑定
c
{
// 环境变量 - 通过 env.VAR_NAME 访问
"vars": { "ENVIRONMENT": "production" },
// KV (键值存储)
"kv_namespaces": [{ "binding": "MY_KV", "id": "abc123" }],
// R2 (对象存储)
"r2_buckets": [{ "binding": "MY_BUCKET", "bucket_name": "my-bucket" }],
// D1 (SQL 数据库)
"d1_databases": [{ "binding": "DB", "database_name": "my-db", "database_id": "xyz789" }],
// Durable Objects (有状态协调)
"durable_objects": {
"bindings": [{ "name": "COUNTER", "class_name": "Counter" }]
},
// Queues (消息队列)
"queues": {
"producers": [{ "binding": "MY_QUEUE", "queue": "my-queue" }],
"consumers": [{ "queue": "my-queue", "max_batch_size": 10 }]
},
// 服务绑定 (Worker 到 Worker 的 RPC)
"services": [{ "binding": "SERVICE_B", "service": "service-b" }],
// 分析引擎
"analytics_engine_datasets": [{ "binding": "ANALYTICS" }]
}
### 密钥 (Secrets)
通过 CLI 设置(不要写在配置文件中):
bash
npx wrangler secret put API_KEY
访问方式:`env.API_KEY`
### 自动配置 (Beta)
未指定 ID 的绑定会自动创建:
c
{ "kv_namespaces": [{ "binding": "MY_KV" }] } // 部署时会自动添加 ID
## 路由与触发器
c
{
"routes": [
{ "pattern": "example.com/*", "zone_name": "example.com" }
],
"triggers": {
"crons": ["0 */6 * * *"] // 每 6 小时一次
}
}
## TypeScript 设置