環境變數用於把運行時配置注入沙箱。它適合傳遞非敏感開關、任務參數和工具配置。密鑰、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適合放單次執行參數。不要依賴環境變數儲存業務狀態,跨沙箱持久狀態應寫入外部儲存。