由于 Sandbox SDK 构建在 Containers 平台之上,它共享相同的底层平台特性。请参阅这些页面,了解 sandbox 部署的定价与限制如何运作。
Sandbox 还继承了当前 Containers 的生命周期、放置位置和路由行为。有关更多详情,请参阅容器生命周期和扩缩容与路由。
有关完整详情,请参阅 Containers 限制,包括:
- 并发 container 实例的内存、vCPU 和磁盘限制
- 实例类型及其资源分配
- 镜像大小和存储限制
当在 Workers 或 Durable Objects 中使用 Sandbox SDK 时,您需要受 Workers 子请求限制 约束。默认情况下,SDK 使用 HTTP 传输,其中每个操作(exec()、readFile()、writeFile() 等)均算作一次子请求。
- Workers 免费版 (Free):每次请求 50 个子请求
- Workers 付费版 (Paid):每次请求 1,000 个子请求
启用 RPC 传输方式,将所有 SDK 调用复用到同一条持久连接上:
{
"vars": {
"SANDBOX_TRANSPORT": "rpc"
},
}[vars]
SANDBOX_TRANSPORT = "rpc"启用 RPC 传输方式后:
- 持久连接只计为一个子请求
- 所有后续的 SDK 操作均使用现有连接(无额外的子请求)
- 非常适合每次请求需要进行多次 SDK 操作的工作流
有关完整指南,请参阅传输模式。
在这些限制下工作的最佳实践:
- 合理选择实例规格 - 根据工作负载要求选择合适的实例类型
- 清理未使用的 sandbox - 当不再需要 sandbox 会话时将其终止,以释放资源
- 优化镜像 - 保持自定义 Dockerfile 简洁,以减小镜像大小
- 对高频操作使用 RPC 传输方式 - 启用
SANDBOX_TRANSPORT=rpc,避免每个请求中大量 SDK 调用触及子请求限制