本文介紹如何刪除、擷取和列出模板,以及如何排查模板構建問題。以下樣本均使用模板 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 模板。