全部產品
Search
文件中心

Function Compute:暫停與恢複

更新時間:Oct 15, 2026

暫停用於在保留 Sandbox 狀態的同時降低運行佔用,後續串連同一個 Sandbox 即可恢複使用。

使用限制

白名單:暫停與恢複功能當前僅對已開通白名單的帳號可用。請先完成白名單開通,再調用 sandbox.pause() 或串連已暫停 Sandbox。
  • Sandbox 暫停後進入深休眠狀態,深休眠狀態有最大保留時間長度,需在保留時間長度內串連恢複,超過保留時間長度後無法保證仍可恢複。

  • 暫停期間不收取 vCPU 和記憶體費用,但仍按深休眠佔用的儲存量收取磁碟費用,計費規則請參見隨用隨付。需要長期保留的資料,應寫入 OSS、NAS 等外部儲存。

配置自動暫停與自動回復

建立 Sandbox 時,可以通過 lifecycle 配置逾時後的處理方式,以及已暫停 Sandbox 是否在收到請求時自動回復。

  • on_timeout(Python)/onTimeout(TypeScript):預設值為 kill,Sandbox 逾時後會被終止。設定為 pause 後,Sandbox 逾時時會自動暫停並保留目前狀態。

  • auto_resume(Python)/autoResume(TypeScript):預設值為 False/false。設定為 True/true 後,對已暫停 Sandbox 的 SDK 操作或進入 Sandbox 內服務的 HTTP 要求會觸發自動回復,無需先調用 Sandbox.connect()。該選項需要與 on_timeout="pause"/onTimeout: "pause" 配合使用。

當前暫不支援通過 keep_memory(Python)/keepMemory(TypeScript)配置僅保留檔案系統的暫停方式。

建立 Sandbox 時開啟自動暫停與自動回復:

from e2b_code_interpreter import Sandbox

sandbox = Sandbox.create(
    timeout=10 * 60,
    lifecycle={
        "on_timeout": "pause",
        "auto_resume": True,
    },
)
const sandbox = await Sandbox.create({
  timeoutMs: 10 * 60 * 1000,
  lifecycle: {
    onTimeout: "pause",
    autoResume: true,
  },
});

lifecycle 配置在 Sandbox 恢複後仍然生效。Sandbox 再次逾時時會繼續自動暫停;後續活動到達時,會再次自動回復。如果未開啟自動回復,仍可以通過 Sandbox.connect() 手動恢複已暫停 Sandbox。

樣本中的逾時時間通過建立時的 timeout(Python)/timeoutMs(TypeScript)設定,建立後可調用 set_timeout(Python)/setTimeout(TypeScript)調整。具體配置,請參見逾時。

暫停 Sandbox

暫停當前 Sandbox:

sandbox.pause()
await sandbox.pause();

暫停後,Sandbox 不再處於活躍運行狀態。後續可以通過串連已有 Sandbox 的方式恢複使用。

串連時自動回復

Sandbox.connect(sandboxId) 支援串連已有 Sandbox。如果 Sandbox 已暫停,串連時會自動回復。

import os

from e2b_code_interpreter import Sandbox

sandbox = Sandbox.connect(
    sandbox_id,
    api_key=os.environ["E2B_API_KEY"],
    api_url=os.environ["E2B_API_URL"],
    domain=os.environ["E2B_DOMAIN"],
)
const sandbox = await Sandbox.connect(sandboxId, {
  apiKey: process.env.E2B_API_KEY,
  apiUrl: process.env.E2B_API_URL,
  domain: process.env.E2B_DOMAIN,
});

使用建議

  • 對需要短期保留內容相關的任務,可以在任務間隔期間暫停 Sandbox。

  • 恢複後需要重新確認長串連、進程狀態和業務層狀態是否符合預期。

  • 暫停不等於終止。任務完成後,應調用 sandbox.kill() 釋放資源。