连接沙箱

更新时间:
复制 MD 格式

连接沙箱用于在不同进程、服务或函数之间复用同一个沙箱。典型场景是:请求 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() 或执行一次轻量命令做健康检查。