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