

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 了解 Lambda 受管執行個體執行環境
<a name="lambda-managed-instances-execution-environment"></a>

Lambda 受管執行個體提供替代部署模型，可在客戶擁有的 Amazon EC2 執行個體上執行函數程式碼，同時 Lambda 管理操作層面。受管執行個體的執行環境與 Lambda （預設） 函數有幾項重要的差異，特別是在處理並行調用和管理容器生命週期方面。

**注意：**如需 Lambda （預設） 執行環境的相關資訊，請參閱了解 Lambda 執行環境生命週期。

## 執行環境生命週期
<a name="lambda-managed-instances-execution-lifecycle"></a>

Lambda 受管執行個體函數執行環境的生命週期與 Lambda （預設） 有幾個關鍵方面不同：

### 初始化階段
<a name="lambda-managed-instances-init-phase"></a>

在初始化階段，Lambda 會執行下列步驟：
+ 初始化並註冊所有延伸模組
+ 引導執行時間進入點。執行時間會產生設定的執行時間工作者數量 （實作取決於執行時間）
+ 執行函數初始化程式碼 （處理常式外部的程式碼）
+ 呼叫 ，等待至少一個執行階段工作者發出整備訊號 `/runtime/invocation/next`

當延伸項目已初始化且至少有一個執行時間工作者已呼叫 時，初始化階段會被視為完成`/runtime/invocation/next`。然後，該函數已準備好處理調用。

**注意**  
對於 Lambda 受管執行個體函數，初始化最多可能需要 15 分鐘。逾時是最多 130 秒或設定的函數逾時 （最多 900 秒）。

### 調用階段
<a name="lambda-managed-instances-invoke-phase"></a>

Lambda 受管執行個體函數的調用階段具有數種獨特特性：

**持續操作。**與 Lambda （預設） 不同，執行環境會持續作用中，並在呼叫到達時處理呼叫，而不會在呼叫之間凍結。

**平行處理。**多個調用可以在相同的執行環境中同時執行，每個調用都由不同的執行時間工作者處理。

**獨立逾時。**函數設定的逾時會套用至每個個別叫用。當調用逾時時，Lambda 會將該特定調用標記為失敗，但不會中斷其他執行中的調用或終止執行環境。

**背壓處理。**如果所有執行期工作者都忙於處理調用，則會拒絕新的調用請求，直到工作者可用為止。

## 錯誤處理和復原
<a name="lambda-managed-instances-error-handling"></a>

Lambda 受管執行個體函數執行環境中的錯誤處理與 Lambda 不同 （預設）：

**叫用逾時。**當個別調用逾時時，Lambda 會傳回該調用的逾時錯誤。不過，Lambda 受管執行個體不會強制執行逾時，您的程式碼會繼續執行。身為函數開發人員，您必須負責偵測和處理逾時。內容物件會公開呼叫的剩餘時間，其中零或負值表示逾時。執行環境中的其他並行調用會繼續正常處理。

**執行期工作者失敗。**如果執行期工作者程序當機，則執行環境會繼續與其餘運作狀態良好的工作者一起運作。

**延伸模組當機。**如果延伸程序在初始化或操作期間當機，整個執行環境會標示為運作狀態不佳並終止。Lambda 會建立新的執行環境來取代它。

**不重設/修復。**與 Lambda （預設） 不同，受管執行個體不會嘗試在發生錯誤後重設並重新初始化執行環境。反之，運作狀態不佳的容器會終止，並以新的容器取代。