全部產品
Search
文件中心

Function Compute:快速開始

更新時間:Sep 15, 2026

模板將穩定的系統依賴、語言運行時、工具鏈和基礎代碼固化為可複用的運行環境。構建一次後,可以基於同一模板建立多個相互獨立的沙箱;更新模板不會影響已經運行中的沙箱。

使用者資料、臨時檔案和頻繁變化的業務狀態應在沙箱運行時寫入。密鑰、Token 等敏感憑證不要寫入模板,應在建立沙箱時通過環境變數注入。

前提條件

  • 準備一個雲沙箱可訪問的 E2B 相容鏡像。首次體驗可使用 構建和系統管理範本 中的官方鏡像。

  • 擷取串連參數 E2B_API_KEY、E2B_API_URL 和 E2B_DOMAIN。SDK 會自動讀取這三個環境變數,下方樣本無需在方法調用中顯式傳入。參數詳情見 E2B SDK 接入參數說明。

安裝 Python SDK:

python3 -m venv .venv
source .venv/bin/activate
pip install e2b==2.31.0 python-dotenv

建立 .env 檔案:

E2B_API_KEY=e2b_xxx
FROM_IMAGE="fc-e2b-registry.cn-beijing.cr.aliyuncs.com/runtime/code-interpreter-v1:v0.0.44"
E2B_API_URL=https://api.cn-beijing.e2b.fc.aliyuncs.com
E2B_DOMAIN=cn-beijing.e2b.fc.aliyuncs.com

構建模板並建立沙箱

下面從鏡像構建模板,並使用返回的模板 ID 建立沙箱。

import os
import time

from dotenv import load_dotenv
from e2b import Sandbox, Template, default_build_logger

load_dotenv()

# SDK 自動讀取 E2B_API_KEY / E2B_API_URL / E2B_DOMAIN 環境變數。
# 從鏡像定義並構建模板。
build = Template.build(
    Template().from_image(os.environ["FROM_IMAGE"]),
    name=f"template-{int(time.time())}",
    cpu_count=2,
    memory_mb=2048,
    on_build_logs=default_build_logger(),
)

# 使用剛構建的模板建立沙箱。
sandbox = Sandbox.create(template=build.template_id, timeout=900)
try:
    print(f"template_id: {build.template_id}")
    print(f"sandbox_id: {sandbox.sandbox_id}")
finally:
    sandbox.kill()

TypeScript 樣本:

import { Sandbox, Template, defaultBuildLogger } from "e2b";

// SDK 自動讀取 E2B_API_KEY / E2B_API_URL / E2B_DOMAIN 環境變數。
// 從鏡像定義並構建模板。
const build = await Template.build(
  Template().fromImage(process.env.FROM_IMAGE),
  `template-${Date.now()}`,
  { cpuCount: 2, memoryMB: 2048, onBuildLogs: defaultBuildLogger() },
);

// 使用剛構建的模板建立沙箱。
const sandbox = await Sandbox.create(build.templateId, { timeoutMs: 900_000 });
try {
  console.log(`template_id: ${build.templateId}`);
  console.log(`sandbox_id: ${sandbox.sandboxId}`);
} finally {
  await sandbox.kill();
}

後續閱讀