通過最簡路徑快速完成首個 PAI-Instant Service 的建立與調用:建立即時服務、基於公用模板建立執行個體、通過 E2B SDK 執行命令、銷毀執行個體。
前置條件
在開始使用 PAI-Instant Service前,請確認已完成以下準備:
已開通阿里雲帳號並完成實名認證。
已開通 PAI 服務,並建立了 PAI 工作空間。
已在EAS專屬機器購買頁面購買即時服務計算資源。
(可選)如需基於自訂鏡像建立模板,請先開通Container Registry(ACR),並建立標準版或進階版 ACR 企業執行個體。若僅使用公用模板,則無需配置 ACR。
(可選)當使用E2B Python SDK時,僅支援小於v2.25.0的版本。
步驟一:建立即時服務
登入 PAI 控制台,在左側導覽列選擇模型在线服务 (EAS),進入服務列表頁。
在頂部 Tab 中切換至即时服务頁簽。
單擊创建即时服务按鈕,按以下樣本配置,其他參數保持預設:
名称:自訂,例如
quickstart。资源类型:選擇EAS资源组。
资源组:選擇已購買的即時服務資源群組。
网络出口方式:選擇共享公网。
單擊确认完成建立。
詳細參數與進階配置參見管理即時服務與模板。
步驟二:選擇公用模板
PAI-Instant Service已預置 code-interpreter、browser、desktop 等公用模板,開箱即用。本入門直接使用 code-interpreter,無需自建模板。
進入即時服務工作台。
在即时服务頁簽的列表中找到步驟一建立的即時服務,在调用列單擊即时服务工作台表徵圖。
在彈出的进入即时服务工作台對話方塊中複製管理链接或只读链接,在瀏覽器中開啟。
在公用模板列表中,選擇
code-interpreter,單擊模板ID進入模板詳情。單擊模板詳情頁右上方的SDK接入擷取SDK串連配置及Python樣本。
步驟三:通過 SDK 建立執行個體並執行命令
安裝 E2B SDK
pip install "e2b<2.25.0" 完整樣本
以下樣本展示一個完整的執行個體使用流程:建立執行個體 → 擷取資訊 → 執行命令 → 檔案讀寫 → 銷毀。
注意:將 <YOUR-API-TOKEN> 與 <YOUR-DOMAIN> 替換為步驟二中擷取的值。
import os
from e2b import Sandbox
import time
# 1. 設定認證資訊
os.environ["E2B_API_KEY"] = "<YOUR-API-TOKEN>"
os.environ["E2B_DOMAIN"] = "<YOUR-DOMAIN>"
# 2. 建立執行個體
sandbox = Sandbox.create(
template="<YOUR-TEMPLATE-ID>",
timeout=300000, # 逾時時間(毫秒)
)
print(f"Sandbox ID: {sandbox.sandbox_id}")
# 等待執行個體進入運行中狀態
print("Waiting for sandbox to be ready...")
max_attempts = 30
for attempt in range(1, max_attempts + 1):
try:
is_running = sandbox.is_running()
status = "Running" if is_running else "Not Running"
print(f" [{attempt}/{max_attempts}] Sandbox status: {status}")
if is_running:
print(" ✓ Sandbox is now running!")
break
except Exception as e:
print(f" [{attempt}/{max_attempts}] Failed to check status: {e}")
if attempt < max_attempts:
time.sleep(2)
# 3. 擷取執行個體詳細資料(包括 metadata 和 dashboard URL)
info = sandbox.get_info()
print(f"State: {info.state}")
print(f"CPU: {info.cpu_count}, Memory: {info.memory_mb}MB")
# 列印 metadata
if info.metadata:
print("\nMetadata:")
for key, value in info.metadata.items():
print(f" {key}: {value}")
# 擷取 dashboard URL
dashboard_url = info.metadata.get('sandbox.alicloud.com/dashboard-url') or \
info.metadata.get('dashboard_url')
if dashboard_url:
print(f"\nDashboard URL: {dashboard_url}")
# 4. 執行命令
result = sandbox.commands.run("echo 'Hello, World!'")
print(result.stdout)
# 5. 檔案操作
sandbox.files.write("/tmp/test.txt", "Hello from sandbox!")
content = sandbox.files.read("/tmp/test.txt")
print(content)
# 6. 清理
sandbox.kill() 步驟四:清理資源
調用
sandbox.kill()銷毀執行個體後,計算資源與系統硬碟均停止計費。您也可以在即时服务工作台的執行個體列表中找到該執行個體,單擊刪除銷毀。
如不再使用,可在即時服務列表中刪除整個空間。
未調用 kill() 或未達到 timeout 的執行個體將持續計費(暫停狀態也按運行中單價計費)。詳見計費說明。