环境变量

更新时间:
复制 MD 格式

环境变量用于把运行时配置注入沙箱。它适合传递非敏感开关、任务参数和工具配置。密钥、Token 等敏感信息应由业务侧控制访问范围,避免写入日志或命令输出。

创建沙箱时注入环境变量

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,
  envs: {
    NODE_ENV: "production",
    TASK_ID: "task-001",
  },
});

const result = await sandbox.commands.run("echo $TASK_ID");
console.log(result.stdout.trim());

Python 示例:

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"],
    envs={
        "NODE_ENV": "production",
        "TASK_ID": "task-001",
    },
)

result = sandbox.commands.run("echo $TASK_ID")
print(result.stdout.strip())

执行命令时覆盖环境变量

const result = await sandbox.commands.run("echo $TASK_ID", {
  envs: {
    TASK_ID: "task-002",
  },
});

console.log(result.stdout.trim());

Python 示例:

result = sandbox.commands.run(
    "echo $TASK_ID",
    envs={
        "TASK_ID": "task-002",
    },
)

print(result.stdout.strip())

使用建议

  • 沙箱级 envs 适合放多次命令都会使用的配置。

  • 命令级 envs 适合放单次执行参数。

  • 不要依赖环境变量保存业务状态,跨沙箱持久状态应写入外部存储。