连接沙箱用于在不同进程、服务或函数之间复用同一个沙箱。典型场景是:请求 A 创建沙箱并返回 sandboxId,请求 B 再通过 sandboxId 继续执行任务。
保存沙箱 ID
import { Sandbox } from "e2b";
const sandbox = await Sandbox.create("code-interpreter-v1", {
apiKey: process.env.E2B_API_KEY,
apiUrl: process.env.E2B_API_URL,
domain: process.env.E2B_DOMAIN,
});
console.log(sandbox.sandboxId);Python 示例:
import os
from e2b import Sandbox
sandbox = Sandbox.create(
template="code-interpreter-v1",
api_key=os.environ["E2B_API_KEY"],
api_url=os.environ["E2B_API_URL"],
domain=os.environ["E2B_DOMAIN"],
)
print(sandbox.sandbox_id)连接已有沙箱
const sandbox = await Sandbox.connect(process.env.SANDBOX_ID, {
apiKey: process.env.E2B_API_KEY,
apiUrl: process.env.E2B_API_URL,
domain: process.env.E2B_DOMAIN,
});
const result = await sandbox.commands.run("pwd");
console.log(result.stdout.trim());Python 示例:
sandbox = Sandbox.connect(
os.environ["SANDBOX_ID"],
api_key=os.environ["E2B_API_KEY"],
api_url=os.environ["E2B_API_URL"],
domain=os.environ["E2B_DOMAIN"],
)
result = sandbox.commands.run("pwd")
print(result.stdout.strip())如果目标沙箱处于暂停状态,Sandbox.connect() 会自动恢复后再返回可用的沙箱对象。暂停与恢复功能当前仅对已开通白名单的账号可用。
使用建议
sandboxId是连接沙箱的关键标识,应由业务系统保存。连接只恢复控制面和运行环境访问,不会替业务自动管理任务状态。
无法确认沙箱仍可用时,可以连接后调用
sandbox.getInfo()或执行一次轻量命令做健康检查。
该文章对您有帮助吗?