All-In-One 模板示例

更新时间:
复制 MD 格式

All-In-One 模板在 browser 模板的浏览器能力之上叠加 Code Interpreter 服务,在同一沙箱会话内既能通过 CDP/VNC 驱动云端浏览器,也能执行 Python/JavaScript 代码、处理文件和运行终端命令,适合需要“浏览器自动化 + 代码执行”协同的 AI Agent 场景。

与 browser 模板一样,All-In-One 模板不是开通即用的内置模板,需要先从官方 All-In-One 镜像构建带名称的自定义模板再创建沙箱。本页只描述相对 browser 模板的差异:镜像与端口、构建镜像、Code Interpreter 验证,以及组合工作流建议。浏览器能力、健康检查、CDP 探测、noVNC 鉴权等与 browser 模板一致,见 browser 模板示例;AIO 场景的完整最佳实践见使用 AIO Sandbox

与 browser 模板的差异

对比项browser 模板All-In-One 模板
核心定位轻量浏览器自动化环境浏览器自动化 + 代码执行一体化环境
Code Interpreter 服务不支持支持 Python/JavaScript 代码执行、上下文保持与结果返回
文件处理支持基础文件访问支持文件 API、上下文内读写和处理
端口3000(浏览器入口)3000(浏览器入口)/ 5000(代码与文件入口)
默认镜像runtime/browser(北京地域示例)runtime/all-in-one(新加坡地域示例)

默认配置

配置项默认值说明
容器镜像fc-e2b-registry.ap-southeast-1.cr.aliyuncs.com/runtime/all-in-one:v0.0.36预置一体化沙箱镜像
浏览器端口3000browser 服务监听端口,用于 /health、CDP 和 VNC
代码执行端口5000Code Interpreter/envd 服务监听端口
CPU4 vCPU推荐规格,需同时支撑浏览器和代码执行
内存8192 MB推荐规格
磁盘大小10240 MB建议 10 GB 以存储浏览器缓存、截图、下载文件和代码执行结果
说明

示例镜像位于新加坡地域(ap-southeast-1),构建和运行模板时请将 E2B_API_URLE2B_DOMAIN 环境变量设为同地域接入地址(SDK 自动读取,无需在方法调用中显式传入)。本地环境准备、X-Access-Token 获取方式与 browser 模板示例一致。

构建 All-In-One 模板

构建流程与 browser 模板相同,只需替换镜像与模板名称,构建时指定 CPU 与内存规格(推荐 4 vCPU / 8192 MB)。

Python

"""All-In-One 模板构建示例。"""

from dotenv import load_dotenv
from e2b import Template, default_build_logger

load_dotenv()

# SDK 自动读取 E2B_API_KEY / E2B_API_URL / E2B_DOMAIN 环境变量。
FROM_IMAGE = "fc-e2b-registry.ap-southeast-1.cr.aliyuncs.com/runtime/all-in-one:v0.0.36"

build = Template.build(
    Template().from_image(FROM_IMAGE),
    name="my-all-in-one-template",
    cpu_count=4,
    memory_mb=8192,
    on_build_logs=default_build_logger(),
)
print(f"template_id: {build.template_id}")

Node.js

// All-In-One 模板构建示例。
import { Template, defaultBuildLogger } from 'e2b';

// SDK 自动读取 E2B_API_KEY / E2B_API_URL / E2B_DOMAIN 环境变量。
const FROM_IMAGE =
  'fc-e2b-registry.ap-southeast-1.cr.aliyuncs.com/runtime/all-in-one:v0.0.36';

const build = await Template.build(Template().fromImage(FROM_IMAGE), 'my-all-in-one-template', {
  cpuCount: 4,
  memoryMB: 8192,
  onBuildLogs: defaultBuildLogger(),
});
console.log(`template_id: ${build.templateId}`);

验证组合能力

浏览器部分(创建沙箱、等待 /health、CDP 连接、截图)与 browser 模板示例完全一致。All-In-One 模板的额外能力是在同一沙箱内通过 Code Interpreter 执行代码:浏览器阶段完成后,用 run_code / runCode 处理浏览器产物。

Python

# 承接 browser 模板示例中的 sbx(同一沙箱),执行一段 Python 验证代码执行能力。
execution = sbx.run_code(
    "import json\n"
    "print(json.dumps({'status': 'ok', 'source': 'all-in-one'}, ensure_ascii=False))"
)
print("".join(execution.logs.stdout))

Node.js

// 承接 browser 模板示例中的 sbx(同一沙箱),执行一段 Python 验证代码执行能力。
const execution = await sbx.runCode(
  "import json\nprint(json.dumps({'status': 'ok', 'source': 'all-in-one'}, ensure_ascii=False))",
);
console.log(execution.logs.stdout.join(""));
说明

使用 Code Interpreter 时,SDK 需为 e2b_code_interpreter / @e2b/code-interpreter,沙箱由 my-all-in-one-template 创建。

组合工作流建议

阶段建议做法
页面访问通过 wss://<sandbox-host>/ws/automation 连接 Playwright/Puppeteer
数据落盘将截图、HTML、下载文件或中间结果写入沙箱文件系统
代码处理用 Code Interpreter 的 run_code / runCode 在同一沙箱内解析和分析数据
结果导出用文件 API 或 SDK 下载生成的 CSV、JSON、图片、PDF 等结果文件

使用限制

限制项约束
浏览器支持目前内置 Chromium/Chrome 浏览器
资源规格建议使用 4 vCPU / 8192 MB 或更高规格,避免浏览器和代码执行互相争抢资源
认证要求CDP、VNC、数据面 API 均需使用有效 API Key 或 X-Access-Token

相关文档