Lambda 程式設計模型 - AWS Lambda

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

Lambda 程式設計模型

Lambda 提供的程式設計模型對於所有執行時間通用。程式設計模型會定義程式碼與 Lambda 系統之間的介面。透過在函數組態中定義一個處理常式,將函數的進入點告知 Lambda。執行時間會將包含呼叫事件內容的物件傳入至處理常式,例如函數名稱和請求 ID。

當處理常式完成處理第一個事件時,執行時間就會傳送至另一個。函數的類別會保留在記憶體中,因此可以重複使用在初始化程式碼的處理常式方法外宣告的用戶端和變數。為了節省後續事件的處理時間,請建立可重複使用的資源,例如初始化期間的 AWS SDK 用戶端。初始化後,函式的每個執行個體都可以處理數千個請求。

您的函數也可以存取 /tmp 目錄中的本機儲存。執行內容凍結時,目錄環境會凍結,所提供的暫時性可用於多重調用。如需詳細資訊,請參閱 Lambda 執行環境

啟用AWS X-Ray追蹤時,執行時間會記錄初始化和執行的個別子區段。

執行階段會擷取函數的記錄輸出,並將其傳送至 Amazon Lo CloudWatch gs。除了記錄函式的輸出之外,執行階段也會記錄函式叫用開始和結束的項目。這包含有要求 ID、帳單期、初始化持續時間和其他詳細資料的記錄。如果函數拋出錯誤,執行時間會將該錯誤傳回給叫用者。

注意

記錄會受到記CloudWatch 錄配額的限制。日誌資料可能會因節流而遺失,或在某些情況下,因函數的執行個體停止而遺失。

Lambda 會隨著需求增加執行額外的執行個體,以及隨需求降低停止執行個體,藉以擴展您的函數。此模型會導致應用程式結構的變化,例如:

  • 除非另有說明,否則可能會不按順序或同時處理傳入的請求。

  • 不依賴函數長期存留的執行個體,而是將應用程式的狀態存放在其他服務中。

  • 使用本機儲存和類別層級物件來提高效能,但將部署套裝服務的大小和傳輸至執行環境的資料量降至最低。

如需使用慣用程式設計語言的程式設計模型實作簡介,請參閱以下章節。