You need to enable JavaScript to run this app.
文档中心
函数服务

函数服务

复制全文
下载 pdf
沙箱应用
沙箱应用对接 E2B 协议
复制全文
下载 pdf
沙箱应用对接 E2B 协议
云沙箱在接口层兼容 E2B 协议,并支持向符合云沙箱镜像要求的镜像动态注入 Envd 运行时。您无需改造沙箱镜像,即可直接使用 E2B 官方 CLI / SDK 在沙箱应用上创建、连接并操作沙箱实例。本文为您介绍该功能的背景信息、使用场景及操作方法。​
注意​
  • E2B 兼容与任意镜像 Envd 注入能力当前处于邀测阶段,如需开通请 提交工单。​
  • 该功能当前仅在 华北2(北京)、华东2(上海)、华南1(广州)、亚太东南(柔佛)地域开放,请在该地域下创建与使用沙箱应用。​
背景信息​
云沙箱具备以下能力。​
​
能力​
说明​
E2B 接口兼容​
兼容 E2B 接口协议,支持直接使用 E2B 官方 CLI / SDK 进行沙箱实例的创建、连接、命令执行、文件读写、代码执行等操作。​
Envd 运行时注入​
创建沙箱应用时通过 Sidecar 向沙箱镜像注入 Envd 运行时,使任意沙箱镜像拉起的沙箱实例具备 E2B 沙箱能力,无需改造镜像。​
生态工具链复用​
复用 E2B 官方 CLI、SDK 及周边工具,已有 E2B 应用可低成本迁移到 veFaaS 云沙箱。​
​
使用场景​
云沙箱对接 E2B 协议与生态适用于以下使用场景。​
​
场景​
说明​
从 E2B 平滑迁移​
已有基于 E2B 构建的 Agent / Code Interpreter 应用,只需替换 API 地址与 Key,即可迁移到 veFaaS 云沙箱,享受其弹性与成本优势。​
复用 E2B 生态工具链​
团队已习惯 E2B 官方 CLI / SDK 的开发方式,希望沿用既有工具链与编码习惯,无需学习新的私有接口。​
Agent 代码执行​
AI Agent 需要即时拉起沙箱实例执行代码、运行命令、读写文件,借助 E2B 兼容接口快速集成沙箱化的代码执行能力。​
任意沙箱镜像快速接入​
业务沙箱镜像未内置 E2B 运行时,通过 Envd 注入即可让现有镜像拉起的沙箱实例直接具备运行时能力,免去镜像改造。​
​
操作步骤​
第一步:创建沙箱应用并注入 Envd​
  1. 在顶部导航栏,选择目标地域。​
  1. 左侧导航栏选择 云沙箱 > 沙箱应用,单击 创建沙箱应用。​
  1. 配置沙箱应用参数。本文仅介绍和注入 Envd 相关的参数,其他的参数介绍参见 沙箱应用。​
  • ​
    参数​
    说明​
    沙箱镜像​
    ​
    容器镜像​
    选择 公共镜像。云沙箱预置的开箱即用的公共镜像,可直接使用。​
    选择镜像​
    在 镜像地址 输入 enterprise-public-<region_id>.cr.volces.com/vefaas-public/e2b:code-interpreter-v1,选择 E2B 代码沙箱镜像。​
    监听端口​
    输入 E2B Code Interpreter Server 启动监听的端口49999。​
    高级配置​
    ​
    Sidecar​
    单击 添加 Sidecar,配置 Sidecar。​
    • 来源类型:选择 平台预置。​
    • 选择 Sidecar:选择 envd。​
    ​
  1. 完成创建后,在应用详情页的 基本信息 中记录 沙箱应用 ID,后续创建沙箱实例时需要使用。​
第二步:创建 E2B 调用的 API Key​
注意​
创建的 API Key 仅展示一次,关闭后将不再可见,请及时保存。​
API Key 用于后续 E2B CLI / SDK 的鉴权。​
  1. 在左侧导航栏选择 云沙箱 > API Key 管理,单击 创建 API Key。​
  1. 单击 复制,复制 API Key。​
  1. 单击 完成,关闭窗口。​
第三步:使用 E2B CLI 创建沙箱实例​
  1. 通过 npm 安装 E2B 官方 CLI。​
  • ​
    npm i -g @e2b/cli​
    ​
  1. 配置 E2B_API_URL 与 E2B_API_KEY 环境变量。E2B_API_KEY 为 第二步 获取的 API key。​
  • ​
    export E2B_API_URL=https://api.vefaas-e2b.sandbox-<region_id>.volcapig.com​
    export E2B_API_KEY=<your_api_key>​
    ​
  1. 使用 第一步 获取的 沙箱应用 ID,通过 CLI 创建并连接沙箱实例。命令执行后会直接创建并连接到对应的沙箱实例。​
  • ​
    e2b sandbox create <sandbox_application_id>​
    ​
  • ​​​
第四步:使用 E2B SDK 创建沙箱实例​
通过 pip 安装 E2B 官方 SDK。​
​
pip install e2b​
​
以下示例脚本演示了沙箱实例创建、命令执行、文件读写、后台命令执行以及多端口调用。​
​
from e2b import Sandbox​
import time​
import requests​
​
sandbox = Sandbox.create("<your_sandbox_application_id>") # 填入自己的沙箱应用 ID​
print(sandbox.sandbox_id)​
print(sandbox.sandbox_domain)​
​
result = sandbox.commands.run('pip install --no-cache-dir flask -i https://pypi.org/simple')​
print(result.stdout)​
​
sandbox.files.write('app.py', '''​
from flask import Flask​
app = Flask(__name__)​
​
@app.route('/')​
def hello():​
return 'Hello from sandbox!'​
​
if __name__ == '__main__':​
app.run(host='0.0.0.0', port=5000)​
''')​
​
result = sandbox.commands.run('python app.py', background=True)​
print(result.pid)​
​
time.sleep(5)​
​
host = sandbox.get_host(5000)​
print("get_host:", host)​
​
response = requests.get("https://{host}/".format(host=host))​
print(response.text)​
​
指定镜像创建实例​
如果同一个沙箱应用需要创建不同镜像的实例,支持在 metadata 中指定镜像地址、启动命令和监听端口,并通过 api_headers 传入沙箱应用 ID。​
说明​
请将尖括号中的占位符替换为实际值。调用成功后,新实例使用 metadata 中指定的镜像配置。​
代码示例​
​
from e2b import Sandbox​
​
with Sandbox.create(​
metadata={​
"vefaas_image_path": "<registry>/<namespace>/<repository>:<tag>",​
"vefaas_image_command": "<start-command>",​
"vefaas_image_port": "8080",​
},​
api_headers={​
"X-VeFaaS-Function-Id": "<your_sandbox_application_id>",​
},​
) as sandbox:​
print(sandbox.sandbox_id)​
​
参数说明​
指定镜像主要涉及的参数说明如下:​
​
参数​
是否必填​
说明​
metadata.vefaas_image_path​
是​
目标镜像的完整地址。系统会查询当前账号有权访问的私有镜像和公开镜像,并对完整镜像地址进行精确匹配。格式为<registry>/<namespace>/<repository>:<tag>,不能传入镜像 ID。​
metadata.vefaas_image_command​
是​
沙箱实例的启动命令。该命令需要能够启动镜像内的服务,例如bash /app/start.sh。​
metadata.vefaas_image_port​
是​
镜像内服务的监听端口,取值范围为 1024~65535,且不能为 9990。​
api_headers.X-VeFaaS-Function-Id​
是​
用于指定承载实例的沙箱应用,传入沙箱应用的 ID。​
​
​
最近更新时间:2026.10.14 11:28:30
这个页面对您有帮助吗?
有用
有用
无用
无用