沙箱实例是基于模板拉起的具体运行环境,每个实例独立隔离。以下介绍通过控制台或 SDK 创建沙箱实例的方法,以及在沙箱详情页执行终端访问、VNC 桌面、文件管理、服务调用、暂停恢复、保存为模板、过期回收等操作。
概述
沙箱实例是 PAI-Sandbox三层资源结构(空间 → 模板 → 实例)中的最末层。每个实例:
-
独立隔离:拥有独立的 Guest OS 内核、文件系统与访问凭证。
-
生命周期独立:可独立创建、暂停、恢复、销毁。
-
属性独立:包含沙箱 ID、Access Token、文件系统、访问地址和服务端口。
三层资源模型详见沙箱概述-资源层级模型。
注意事项
使用沙箱时,对于24小时以上的长链接,系统不保证链接的稳定性。
创建沙箱实例
通过控制台创建
PAI-Sandbox提供三个控制台入口创建实例:
-
入口一:在沙箱空间工作台,单击创建沙箱按钮。
-
入口二:在私有模板/公共模板的列表中选择目标模板的创建沙箱操作。
-
入口三:在模板详情页的沙箱列表中单击创建沙箱。
在弹出的创建沙箱对话框中配置以下参数:
|
参数 |
是否必填 |
说明 |
|
Template |
是 |
选择基于哪个模板创建沙箱。 |
|
过期时间 |
是 |
选择沙箱的最长生存时长,例如 1 小时。打开永不过期开关可不设置过期时间(不推荐生产环境使用)。 |
|
环境变量 |
否 |
沙箱实例内可见的环境变量,键值对形式。 |
|
自定义标签 |
否 |
以键值对形式为沙箱添加业务标签,便于检索与归类。 |
单击创建沙箱完成创建。
通过 SDK 创建
PAI-Sandbox原生兼容 E2B SDK,使用方法与 E2B 完全一致:
import os
from e2b import Sandbox
# 设置认证信息
os.environ["E2B_API_KEY"] = "<YOUR-TOKEN>"
os.environ["E2B_DOMAIN"] = "sandbox01.cn-shanghai.pai-eas.aliyuncs.com"
# 创建沙箱实例
sandbox = Sandbox.create(
template="<YOUR-TEMPLATE-ID>",
timeout=300000,
)
print(f"Sandbox ID: {sandbox.sandbox_id}")
在模板详情页单击右上角SDK接入可查看SDK连接配置及Python 示例代码。更多API说明详见E2B-SDK接入。
使用沙箱实例
查看沙箱详情
进入沙箱空间工作台后,在沙箱列表中找到目标沙箱,在操作列单击详情,进入沙箱详情页。
沙箱详情页展示以下信息:
-
资源规格:CPU、内存、磁盘。
-
状态信息:状态(运行中/已暂停)、运行时长。
-
基本信息:沙箱 ID、模板、创建时间、过期时间、子账号 ID、主账号 ID、Access Token。
-
元数据:包括
sandbox.alicloud.com/service-name、userId等键值对。
打开终端
单击打开终端,弹出 Web Terminal 窗口。终端中展示沙箱 ID、模板 ID 和会话超时时间(默认 10 分钟空闲 / 30 分钟最大)。
在终端中可直接执行任意 Shell 命令,效果等同于通过 SDK 调用 sandbox.commands.run(),适合用于调试和环境验证。
打开 VNC
对于 Desktop 类模板,单击打开 VNC 可启动远程桌面访问。
noVNC 服务需监听 6080 端口,前端将跳转至该端口访问远程桌面。
VNC 适用于以下场景:
-
需要图形界面的应用调试。
-
浏览器自动化(如 Playwright、Selenium)的可视化验证。
-
GUI 测试和截图采集。
文件管理
沙箱详情页提供文件管理,支持白屏化的目录树浏览:
-
可查看沙箱内的目录结构(如
bin、boot、code、dev、etc、home等)。 -
支持新建文件夹、上传文件、刷新视图、向上一级、回到根目录等操作。
-
可查看文件大小和修改时间。
文件管理功能等同于通过 SDK 的 sandbox.files.read() / sandbox.files.write() 调用,便于在沙箱外快速访问运行结果。
服务调用
服务调用通过白屏化的 HTTP 交互面板,直接调用沙箱内启动的服务。
配置项包括:
-
请求方法:GET、POST、PUT、DELETE 等。
-
端口:沙箱内服务的监听端口。
-
路径:请求的 URL 路径(如
/health)。 -
请求头:可自定义 HTTP Header,例如
Content-Type: application/json。 -
预览 URL:系统自动拼接的完整请求 URL,可直接复制使用。
单击发送请求后,右侧的HTTP 交互记录 区域将显示请求和响应内容,便于实时调试沙箱内的服务接口。
沙箱内服务对外访问:沙箱内启动的服务可自动获得一个公网可访问的 URL,格式为 https://<port>-<sandbox-id>.<domain>/<path>。该 URL 可直接通过 HTTP 客户端调用,无需额外的端口映射配置。
请求日志
切换至请求日志Tab,可查看通过数据面(Data Plane)转发到沙箱的所有 HTTP 请求记录,便于审计与问题排查。
暂停与恢复
PAI-Sandbox支持沙箱实例的暂停与恢复,适用于需要保留沙箱状态用于后续恢复或保存为模板的场景。
-
暂停:在沙箱列表中单击暂停按钮,或调用
sandbox.pause()。暂停后沙箱状态被保留至沙箱空间存储。 -
恢复:在沙箱列表中单击恢复按钮,或调用
Sandbox.connect("<sandbox-id>")。沙箱将从原状态快速恢复至运行中。
暂停状态的沙箱仍按运行中的相同单价继续计费(包括 CPU、内存、系统盘)。如希望节省费用,请直接销毁不再使用的沙箱实例。详见计费说明。
保存为模板
PAI-Sandbox支持将沙箱实例的当前状态(包括写入的文件、安装的依赖、运行中的进程等)保存为新模板,便于环境复用。
典型场景:
-
开发调试阶段,在沙箱中完成代码修改与环境配置后,直接保存为模板,避免每次修改均需重新构建镜像。
-
将一个调试好的 Agent 运行环境固化为标准模板,供团队复用。
前提条件:沙箱空间必须配置企业版镜像实例(标准版或高级版)。
操作步骤:
-
暂停要保存为模板的沙箱实例。
-
单击保存为模板。
-
填写新模板的名称与描述。
-
单击确认,系统将基于当前实例状态创建一个新模板。
创建后的模板可在沙箱空间的私有模板列表中查看。
沙箱过期与回收
沙箱具有以下回收机制:
-
达到创建时指定的过期时间,自动销毁。
-
通过控制台或 SDK 主动调用删除操作。
延长沙箱超时时间
PAI-Sandbox提供2种延长 timeout 的方法:
|
方法 |
行为 |
|
|
重连沙箱时顺便延长。沙箱若处于 paused 状态会自动恢复运行,并设置新的超时时间;若已在运行,仅当请求的 |
|
|
明确设置新的 timeout 时间。将过期时间重置为"当前时刻 + timeout"。 |