[ PROMPT_NODE_24454 ]
Workers For Platforms 配置说明
[ SKILL_DOCUMENTATION ]
# 配置
## 调度命名空间绑定 (Dispatch Namespace Binding)
### wrangler.jsonc
c
{
"$schema": "./node_modules/wrangler/config-schema.json",
"dispatch_namespaces": [{
"binding": "DISPATCHER",
"namespace": "production"
}]
}
## 智能体隔离模式 (Worker Isolation Mode)
命名空间中的智能体默认在**非受信任模式 (untrusted mode)** 下运行,以确保安全:
- 无法访问 `request.cf` 对象
- 每个智能体拥有独立的缓存(无共享缓存)
- `caches.default` 被禁用
### 启用受信任模式 (Trusted Mode)
对于您控制所有代码的内部平台:
bash
curl -X PUT
"https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/workers/dispatch/namespaces/$NAMESPACE"
-H "Authorization: Bearer $API_TOKEN"
-d '{"name": "'$NAMESPACE'", "trusted_workers": true}'
**注意事项:**
- 智能体在命名空间内共享缓存(请使用缓存键前缀:`customer-${id}:${key}`)
- 可访问 `request.cf` 对象
- 启用受信任模式后需重新部署现有智能体
**适用场景:** 内部平台、A/B 测试平台、需要地理位置数据时
### 使用出站智能体 (Outbound Worker)
c
{
"dispatch_namespaces": [{
"binding": "DISPATCHER",
"namespace": "production",
"outbound": {
"service": "outbound-worker",
"parameters": ["customer_context"]
}
}]
}
## Wrangler 命令
bash
wrangler dispatch-namespace list
wrangler dispatch-namespace get production
wrangler dispatch-namespace create production
wrangler dispatch-namespace delete staging
wrangler dispatch-namespace rename old new
## 自定义限制
设置每次调用的 CPU 时间和子请求限制:
typescript
const userWorker = env.DISPATCHER.get(
workerName,
{},
{
limits: {
cpuMs: 10, // 最大 CPU 毫秒数
subRequests: 5 // 最大 fetch() 调用次数
}
}
);
处理限制违规:
typescript
try {
return await userWorker.fetch(request);
} catch (e) {
if (e.message.includes("CPU time limit")) {
return new Response("CPU limit exceeded", { status: 429 });
}
throw e;
}
## 静态资源
使用智能体部署 HTML/CSS/图像。上传过程请参阅 [api.md](./api.md#static-assets)。
### Wrangler
c
{
"name": "customer-site",
"main": "./src/index.js",
"assets": {
"directory": "./public",
"binding": "ASSETS"
}
}
bash
npx wrangler deploy --name customer-site --dispatch-namespace production
### 控制台部署
CLI 的替代方案:
1. 在控制台上传智能体文件
2. 添加 `--dispatch-namespace` 标志:`wrangler deploy --dis