本节介绍如何在沙箱中设置和使用环境变量。

设置环境变量

您可以通过如下 3 种方式来设置环境变量:

1. 创建沙箱时设置全局环境变量

您可以在创建沙箱时设置全局环境变量。
import { Sandbox } from 'ppio-sandbox/code-interpreter'

const sandbox = await Sandbox.create({
    envs: {
        MY_VAR: 'my_value',
    },
})

// 命令跑在沙箱的 Shell 环境里
const result = await sandbox.commands.run("echo $MY_VAR")
console.log(result)

// 输出示例:
// { exitCode: 0, error: undefined, stdout: 'my_value\n', stderr: '' }

await sandbox.kill()

2. 运行代码时设置环境变量

您可以为沙箱中特定的代码运行片段设置环境变量。
如果您设置了同名的全局环境变量,全局环境变量值将被覆盖。
import { Sandbox } from 'ppio-sandbox/code-interpreter'

const sandbox = await Sandbox.create()

// 代码跑在沙箱实例里的 Jupyter Notebook 环境里
const result = await sandbox.runCode('import os; print(os.environ.get("MY_VAR"))', {
  envs: {
    MY_VAR: 'my_value',
  },
})
console.log(result.logs)

await sandbox.kill()

3. 运行命令时设置环境变量

您可以为沙箱中特定的命令执行片段设置环境变量。
如果您设置了同名的全局环境变量,全局环境变量值将被覆盖。
import { Sandbox } from 'ppio-sandbox/code-interpreter'

const sandbox = await Sandbox.create()

const result = await sandbox.commands.run('echo $MY_VAR', {
  envs: {
    MY_VAR: '123',
  },
})

console.log(result)

// 输出示例:
// { exitCode: 0, error: undefined, stdout: '123\n', stderr: '' }

await sandbox.kill()