Skip to content

DevBox 快速入门 ​

DevBox 提供隔离的云端 Linux 沙箱。通过 Python 或 JavaScript/TypeScript SDK,你可以执行命令、读写文件、操作终端和 Git,并在需要时暂停、恢复或删除沙箱。

你的程序运行在本地或应用服务器中;SDK 中的命令和远端文件操作发生在沙箱里。

使用 Go、Java 等其他语言直接接入,可从API 参考开始;Python 与 JavaScript / TypeScript 用户可继续按下面的步骤使用 SDK。

安装 ​

需要 Python 3.10+,或 Node.js 20.18.1+。从源码安装:

bash
git clone https://github.com/huaweicloud/devspace-devbox.git
cd devspace-devbox
bash
python -m pip install ./python-sdk
bash
cd js-sdk
npm ci
npm run build
# 在你的应用目录中安装,路径替换为实际位置:
npm install /path/to/devspace-devbox/js-sdk

配置凭证 ​

准备服务提供的 API Key 和访问地址。不要将 API Key 写入源码或提交到 Git。

bash
export DEVBOX_API_KEY="<你的 API Key>"
export DEVBOX_API_URL="https://<服务访问域名>"
bat
set "DEVBOX_API_KEY=<你的 API Key>"
set "DEVBOX_API_URL=https://<服务访问域名>"

已使用默认服务地址时,可以不设置 DEVBOX_API_URL。详见配置参考。

创建并使用沙箱 ​

保存为 app.py 或 app.mjs,然后运行 python app.py 或 node app.mjs。

python
from devbox import Sandbox

with Sandbox.create("default", timeout=300) as sandbox:
    print("Sandbox:", sandbox.sandbox_id)
    result = sandbox.commands.run("printf 'hello from DevBox\n'")
    print(result.stdout)

    sandbox.files.write("/tmp/message.txt", "hello from the SDK")
    print(sandbox.files.read("/tmp/message.txt"))
js
import { Sandbox } from "devbox-js-sdk";

const sandbox = await Sandbox.create("default", { timeout: 300 });
try {
  console.log("Sandbox:", sandbox.sandboxId);
  const result = await sandbox.commands.run("printf 'hello from DevBox\n'");
  console.log(result.stdout);

  await sandbox.files.write("/tmp/message.txt", "hello from the SDK");
  console.log(await sandbox.files.read("/tmp/message.txt"));
} finally {
  try {
    await sandbox.kill();
  } finally {
    await sandbox.close();
  }
}

default 是模板别名,实际可用模板以模板列表为准。

保留还是删除 ​

操作效果
kill()删除远端沙箱,不再保留其中的数据
close()释放本地 SDK 连接,不删除远端沙箱
pause()暂停沙箱,保存状态供后续恢复

Python 的 with Sandbox.create(...) 会在离开代码块时执行删除。需要保留沙箱时,手动创建并在使用结束后调用 close()。记录沙箱 ID 后,可使用 Sandbox.connect(id) 再次访问。

沙箱默认存活 300 秒,到期销毁。更长任务或暂停恢复,请阅读生命周期。