全部產品
Search
文件中心

Function Compute:執行個體隔離概述

更新時間:Aug 21, 2025

隨著AI Agent的普及,為了滿足AI Sandbox對獨立隔離運行環境的需求,Function Compute推出了執行個體隔離功能,即一個執行個體始終只能處理一個請求或一個會話內的所有請求,直到執行個體釋放。旨在提供一個安全、可靠、彈性、低成本的沙箱運行時環境。

執行個體隔離模式

不隔離

Function Compute預設不隔離,基於請求最大程度複用執行個體,一個執行個體同時並發/累計可以處理1~N個請求。

請求隔離

一個使用者請求(request) 獨佔並綁定一個函數執行個體。

會話隔離

一個使用者會話(Session) 獨佔並綁定一個函數執行個體。

適用情境

  1. 多租隔離:為不同的租戶提供獨立環境,防止執行個體複用時租戶間的資料泄漏。如 AI Agent 情境。

  2. 安全隔離情境:完全隔離狀態(如記憶體、臨時檔案等),避免不同請求間的資料殘留。例如處理敏感性資料(如加密金鑰、使用者隱私資訊),要求每次執行後徹底清理環境。如任務情境如流水線構建情境、文生圖情境。

  3. 短期任務且低並發情境:任務執行時間極短(如毫秒級),且並發量極低,複用執行個體的收益小於建立新執行個體的開銷。如單次觸發的臨時清理檔案情境。

  4. 資源釋放和清理:依賴外部資源(如資料庫連接,GPU 裝置),需要保證每次執行後資源完全釋放。

  5. 避免跨請求的副作用的情境:代碼中存在全域變數依賴外部資源(如資料庫連接,GPU 裝置),需要保證每次執行後資源完全釋放。

實現原理

背景與挑戰

基於請求觸發、閑時釋放執行個體降本的設計初衷,Function Compute的運行時執行個體通常都是短生命週期,顯然不滿足會話隔離情境的長周期執行個體保活需求。

會話保持機制

為瞭解決以上問題,Function Compute支援彈性執行個體在請求結束後自動轉化為閑置狀態,實現低成本執行個體保活(閑置期間vCPU資源使用不收費,記憶體僅收1/10費用,GPU資源根據卡型不同,僅收1/8~1/5的費用),當Session TTL/Session idle逾時後,會話生命週期結束,執行個體開始釋放,直至縮容到最小執行個體數,整個轉化過程除了計費側感知其它都對使用者透明。

如果設定的最小執行個體數≥1,當有請求/背景工作觸發時,執行個體迅速喚醒,暖開機轉為彈性執行個體活躍狀態,當請求/背景工作結束時,活躍彈性執行個體自動轉化為閑置狀態,直到Session TTL/Session idle逾時,執行個體開始釋放,直到縮容到最小執行個體數為止。

隔離性保證機制

通過Function Compute自動化佈建單一實例並發度=1(請求隔離情境),自動化佈建單一實例 Session 並發度=1(會話隔離情境),實現Function Compute一個執行個體始終只處理一個請求/會話。

生命週期映射捆綁

將請求/會話的生命週期和執行個體的生命週期分別一一映射,引入 Session idle 和 Session TTL 逾時時間的機制來判定當前會話生命週期是否結束。請求/會話生命週期結束時,相應執行個體的生命週期也結束,立即釋放。

使用限制

  1. 執行個體規格限制:僅2 Core 及以上的規格才能使用執行個體隔離功能(包括建立函數、更新函數的情境)

  2. 請求層級隔離:僅用於單一實例單並發情境。使用了該功能後,Function Compute強制配置單一實例並發度=1,客戶不可再編輯修改。

  3. 會話隔離:需要客戶前置配置會話親和特性。使用了該功能後,Function Compute強制配置單一實例 Session並發度=1,客戶不可再編輯修改。

  4. 內建運行時:內建運行時不支援 MCP SSE 會話隔離。

  5. 函數類型限制:除任務函數外,其他類型的函數都支援執行個體隔離功能。

計費說明

請求隔離

請求隔離費用 = 函數執行個體在請求期間的費用

會話隔離

會話隔離費用 = 函數執行個體在會話生命週期內的費用

關於彈性執行個體(閑置)和彈性執行個體(活躍)的計算規則,請參考計費概述