沙箱是一台独立的虚拟机:一个运行 OCI 镜像(就是 docker 构建、镜像仓库提供的那种)的 Firecracker microVM。你用一次 API 调用创建它。然后在里面运行命令、读写文件、打开终端,或者打开指向它某个端口的链接。命令和文件经由机器内部的代理程序到达它,而不是经由它的网络。
沙箱里没有任何动静时,它就休眠。它保留内存、进程和磁盘,下一次调用会在几毫秒内把它原样唤醒。它会一直存在,直到你删除它。
什么时候用沙箱
- AI 智能体的电脑:编程智能体、浏览器智能体或代码解释器,在里面运行命令、安装软件包,并在多轮之间保留工作成果。
- 不是你写的代码:用户或模型发给你的代码,与你自己的机器隔离、彼此隔离,配有网络规则,还有代码永远看不到的机密。
- 每个请求一个任务:
glac run创建一个沙箱,运行一条命令,然后删除它。 - 会分支的环境:为运行中的沙箱创建快照,再分叉出多个副本,各自从那一刻继续运行。
- 一台独立的服务器:设置
init: "systemd"后,镜像自己的 systemd 作为 PID 1,软件包、服务、cron 和 SSH 都和在任何服务器上一样(完整的系统)。
要在某个地址上提供镜像的服务、让实例随请求启动,请用方块。两者运行在同样的机器上,价格也相同。
工作方式
- 创建。
POST /v1/sandboxes(glac sandboxes create),给出一个镜像,或不给出而使用平台的默认镜像。某个镜像的第一个沙箱,要等平台拉取镜像并保存模板。之后的沙箱都是这个模板的副本,取自一个已在运行的预热池。 - 使用。运行命令 (
exec)、读写文件、打开终端、分发端口链接。调用会等待正在启动或在休眠的沙箱:不会因此失败。 - 休眠。空闲
sleep_after_seconds秒后(默认 30),它进入休眠。任何需要它的东西都会唤醒它:命令、文件、链接上的请求、定时器。
费用
沙箱运行时,为它使用的 CPU 和占用的内存付费。休眠时,为它保存的内容付费:它的内存和它自己那部分磁盘。以暂停状态留在机器内存中的沙箱,内存照运行时付费,但不付 CPU。
| 计量项 | 价格 | 免费版(每天) | 付费版每月包含 |
|---|---|---|---|
| CPU(计算时计费) | 每百万 CPU 毫秒 $0.01 | 100万 CPU 毫秒 | 6000万 CPU 毫秒 |
| 内存(运行时或暂停在内存中时) | 每 GiB·小时 $0.008 | 6 GiB·小时 | 250 GiB·小时 |
| 请求(发往方块或经由沙箱链接) | 每百万次 $0.30 | 100,000 | 1000万 |
| 休眠实例保存的内容(内存和它自己的磁盘) | 每 GB·月 $0.02 | 共 15 GB 数据,含快照和云盘 | 20 GB·月数据,含快照和云盘 |
| 快照保存的内容 | 每 GB·月 $0.02 | 与上一行共用额度 | 与上一行共用额度 |
| 发往互联网的出站流量(北美) | 每 GB $0.004 | 3 GB,不限流出区域 | 1 TB,不限流出区域 |
| 发往互联网的出站流量(欧洲) | 每 GB $0.004 | ||
| 发往互联网的出站流量(亚太) | 每 GB $0.01 |
在免费版上,实例的用量从当天的配额中扣除;付费版每月包含每个计量项的一定用量,超出部分按这些价格从余额中支付。参见价格与套餐。
各套餐的限制
| 免费版 | 付费版 | |
|---|---|---|
| 单个实例上限 | 2 vCPU、4 GiB | 8 vCPU、16 GiB |
| 同时运行的实例 | 5 | 500 |
| vCPU 合计 | 10 | 500 |
| 内存合计 | 10 GiB | 1,000 GiB |
| 保留的休眠实例 | 20 | 10,000 |
| 每分钟创建的沙箱 | 10 | 600 |
| 单个项目每小时创建的沙箱 | 200 | 10,000 |
运行中的沙箱数及其 vCPU 和内存按整个账户计算:所有项目的沙箱和方块实例合在一起。所有限制都在限制页面上。