全部產品
Search
文件中心

Function Compute:範本管理員

更新時間:Jul 29, 2026

本文介紹如何刪除、擷取和列出模板,以及如何排查模板構建問題。以下樣本均使用模板 ID。

準備工作

配置雲沙箱的 API Key、API URL 和網域名稱。<region> 必須與模板所在地區一致。

export E2B_API_KEY="<your-api-key>"
export E2B_API_URL="https://api.<region>.e2b.fc.aliyuncs.com"
export E2B_DOMAIN="<region>.e2b.fc.aliyuncs.com"
export TEMPLATE_ID="<template-id>"

Python 樣本使用 requests 庫:

pip install requests

刪除模板

刪除操作不可恢複。執行前先確認模板 ID,避免誤刪仍在使用的模板。

curl

curl --request DELETE \
  --url "${E2B_API_URL}/templates/${TEMPLATE_ID}" \
  --header "X-API-Key: ${E2B_API_KEY}"

Python requests

import os

import requests

api_url = os.environ["E2B_API_URL"].rstrip("/")
template_id = os.environ["TEMPLATE_ID"]

response = requests.delete(
    f"{api_url}/templates/{template_id}",
    headers={"X-API-Key": os.environ["E2B_API_KEY"]},
    timeout=30,
)
response.raise_for_status()
print(f"已刪除模板:{template_id}")

E2B CLI

下面的命令會要求確認後再刪除模板:

e2b template delete "${TEMPLATE_ID}"

自動化指令碼可以增加 --yes 跳過確認。使用該參數前,應確保 TEMPLATE_ID 已通過程式校正。

擷取模板

擷取介面根據模板 ID 返回模板詳情及其構建記錄。

curl

curl --request GET \
  --url "${E2B_API_URL}/templates/${TEMPLATE_ID}" \
  --header "X-API-Key: ${E2B_API_KEY}"

Python requests

import json
import os

import requests

api_url = os.environ["E2B_API_URL"].rstrip("/")
template_id = os.environ["TEMPLATE_ID"]

response = requests.get(
    f"{api_url}/templates/{template_id}",
    headers={"X-API-Key": os.environ["E2B_API_KEY"]},
    timeout=30,
)
response.raise_for_status()
print(json.dumps(response.json(), ensure_ascii=False, indent=2))

E2B CLI

E2B CLI 當前沒有單獨的 template get 命令。可以輸出 JSON 格式的模板列表,再使用 jq 按模板 ID 擷取對應的清單項目:

e2b template list --format json \
  | jq --arg template_id "${TEMPLATE_ID}" \
      '.[] | select(.templateID == $template_id)'

該方式返回模板的列表摘要。如果需要查看模板詳情和構建記錄,請使用 curl 或 Python requests 調用擷取介面。

列出模板

列表介面返回當前帳號在目標地區可見的模板。

curl

curl --request GET \
  --url "${E2B_API_URL}/templates" \
  --header "X-API-Key: ${E2B_API_KEY}"

Python requests

import json
import os

import requests

api_url = os.environ["E2B_API_URL"].rstrip("/")

response = requests.get(
    f"{api_url}/templates",
    headers={"X-API-Key": os.environ["E2B_API_KEY"]},
    timeout=30,
)
response.raise_for_status()
print(json.dumps(response.json(), ensure_ascii=False, indent=2))

E2B CLI

以表格形式列出模板:

e2b template list

需要在指令碼中處理結果時,可以輸出 JSON:

e2b template list --format json

模板構建

不支援通過 E2B Template 內聯傳入 steps 或 Dockerfile,如何構建依賴?

當前 Template Build API 不支援在 E2B Template 定義中內聯傳入 steps(安裝步驟)或 Dockerfile。傳入 steps 會返回 400 steps are not supported,因此不要試圖用構建步驟線上安裝依賴。

這裡不支援的只是「通過 E2B Template 定義內聯傳入 steps 或 Dockerfile」這種用法;Dockerfile 本身仍然可用:你可以照常在外部用 Dockerfile 構建出成品鏡像,再通過 from_image 從鏡像倉庫構建模板。

因此,依賴應在 Dockerfile 或外部鏡像構建階段裝好,再把成品鏡像推送到鏡像倉庫,模板只負責從該鏡像構建。這樣可以避免在模板構建或每次建立 Sandbox 後重複下載和安裝依賴。

精簡的 Dockerfile 樣本:

FROM python:3.12-slim

# 安裝 Python 依賴
RUN pip install --no-cache-dir pandas numpy

# 安裝系統依賴並清理 apt 索引
RUN apt-get update \
    && apt-get install -y --no-install-recommends git \
    && rm -rf /var/lib/apt/lists/*

排查失敗時先看錯誤摘要;如果摘要不足以定位,再查看完整構建日誌中的失敗階段、RequestId、鏡像地址和構建配置。

模板構建與自訂鏡像的完整流程,參見構建自訂鏡像模板。

私人鏡像拉取或構建失敗,怎麼排查?

先在完整構建日誌中確認失敗階段,再按下表處理常見的源鏡像拉取和鏡像格式問題。

失敗階段典型錯誤處理動作
拉取源鏡像unauthorized、denied、manifest unknown 或 not found核對鏡像地址、tag 或 digest 是否真實存在。使用 ACR EE 時,確認執行個體與雲沙箱屬於同一 UID、同一地區,已綁定構建鏈路可訪問的 VPC,並檢查使用者名稱、密碼或 token。
轉換/構建invalid image, platform of image is unknown/unknown,或 manifest、provenance 相關錯誤檢查鏡像 manifest。使用 linux/amd64 單一平台構建,關閉 provenance 和 SBOM,推送新 tag 後重試;不要複用內容可能已變化的舊 tag。

自訂鏡像模板的完整構建流程參見構建自訂鏡像模板;從私人倉庫拉取鏡像的端到端樣本參見使用 GHCR 自訂鏡像構建 Sandbox 模板。