本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
了解 Lambda 受管執行個體執行環境
Lambda 受管執行個體提供替代部署模型,可在客戶擁有的 Amazon EC2 執行個體上執行函數程式碼,同時 Lambda 管理操作層面。受管執行個體的執行環境與 Lambda (預設) 函數有幾項重要的差異,特別是在處理並行調用和管理容器生命週期方面。
注意:如需 Lambda (預設) 執行環境的相關資訊,請參閱了解 Lambda 執行環境生命週期。
執行環境生命週期
Lambda 受管執行個體函數執行環境的生命週期與 Lambda (預設) 有幾個關鍵方面不同:
初始化階段
在初始化階段,Lambda 會執行下列步驟:
-
初始化並註冊所有擴充功能
-
引導執行時間進入點。執行時間會產生設定的執行時間工作者數量 (實作取決於執行時間)
-
執行函數初始化程式碼 (處理常式外部的程式碼)
-
呼叫 ,等待至少一個執行階段工作者發出整備訊號
/runtime/invocation/next
當延伸項目已初始化,且至少有一個執行階段工作者已呼叫 時,初始化階段即視為完成/runtime/invocation/next。然後,該函數已準備好處理調用。
注意
對於 Lambda 受管執行個體函數,初始化最多可能需要 15 分鐘。逾時是最多 130 秒或設定的函數逾時 (最多 900 秒)。
調用階段
Lambda 受管執行個體函數的調用階段具有數種獨特特性:
持續操作。與 Lambda (預設) 不同,執行環境會持續作用中,在呼叫到達時處理呼叫,而不會在呼叫之間凍結。
平行處理。多個調用可以在相同的執行環境中同時執行,每個環境都由不同的執行時間工作者處理。
獨立逾時。函數設定的逾時適用於每個個別調用。當調用逾時時,Lambda 會將該特定調用標記為失敗,但不會中斷其他執行中的調用或終止執行環境。
背壓處理。如果所有執行期工作者都忙於處理調用,新的調用請求會被拒絕,直到工作者可用為止。
錯誤處理和復原
Lambda 受管執行個體函數執行環境中的錯誤處理與 Lambda 不同 (預設):
叫用逾時。當個別調用逾時時,Lambda 會傳回該特定調用的逾時錯誤,但不會終止執行環境。其他並行調用會繼續正常處理。
執行期工作者失敗。如果執行時間工作者程序當機,執行環境會繼續與其餘運作狀態良好的工作者一起運作。
延伸模組當機。如果延伸程序在初始化或操作期間當機,整個執行環境會標示為運作狀態不佳並終止。Lambda 會建立新的執行環境來取代它。
不重設/修復。與 Lambda (預設) 不同,受管執行個體不會嘗試在發生錯誤後重設並重新初始化執行環境。相反地,運作狀態不佳的容器會終止,並以新的容器取代。