环境变量用于把运行时配置注入沙箱。它适合传递非敏感开关、任务参数和工具配置。密钥、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适合放单次执行参数。不要依赖环境变量保存业务状态,跨沙箱持久状态应写入外部存储。
该文章对您有帮助吗?