本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
瞭解關鍵的 Lambda 概
Lambda 是一種事件驅動的運算服務,可執行函數的執行個體來處理事件。您可以使用 Lambda 直接叫用函數API,也可以設定 AWS 服務或資源來叫用函數。
以下各節說明 Lambda 函數的一些關鍵概念、事件驅動的程式設計模型,以及函數在其中執行的環境。
函式
函數是您可以叫用以在 Lambda 中執行程式碼的資源。函數具有代碼來處理您傳遞到函數或其他 AWS 服務發送給函數的事件。
觸發條件
觸發是叫用 Lambda 函數的資源或組態。觸發程式包括您可設定以叫用函數和事件來源映射的 AWS 服務。事件來源映射是 Lambda 中的資源,它可從串流或佇列中讀取項目並叫用函數。如需詳細資訊,請參閱 了解 Lambda 函數叫用方法 和 使用來自其他服務的事件叫用 Lambda AWS。
事件
事件是JSON格式化的文件,其中包含要處理之 Lambda 函數的資料。執行時間會將事件轉換為物件,再將它傳遞到您的函數程式碼。當您呼叫函數時,您決定事件的結構和內容。
範例 自訂事件 - 天氣資料
{ "TemperatureK": 281, "WindKmh": -3, "HumidityPct": 0.55, "PressureHPa": 1020 }
當 AWS 服務叫用您的函數時,服務會定義事件的形狀。
範例 服務事件 — Amazon SNS 通知
{ "Records": [ { "Sns": { "Timestamp": "2019-01-02T12:45:07.000Z", "Signature": "tcc6faL2yUC6dgZdmrwh1Y4cGa/ebXEkAi6RibDsvpi+tE/1+82j...65r==", "MessageId": "95df01b4-ee98-5cb9-9903-4c221d41eb5e", "Message": "Hello from SNS!", ...
如需有關來自 AWS 服務之事件的詳細資訊,請參閱使用來自其他服務的事件叫用 Lambda AWS。
執行環境
執行環境為您的 Lambda 函數提供了安全且隔離的執行時間環境。執行環境會管理執行函數所需的程序和資源。執行環境為函數以及與函數關聯的任何延伸項目提供生命週期支援。
如需詳細資訊,請參閱瞭解 Lambda 執行環境生命週期。
部署套件
使用部署套件部署 Lambda 函數程式碼。Lambda 支援兩種部署套件:
-
包含函數程式碼及其相依項目的 .zip 封存檔。Lambda 為您的函數提供作業系統和執行時間。如需詳細資訊,請參閱以 .zip 封存檔形式部署 Lambda 函數。
-
與「開放容器方案」(OCI) 規格相容的容器
映像檔。您可以將函數程式碼和相依項新增至映像。還必須包含作業系統和 Lambda 執行時間。如需詳細資訊,請參閱使用容器映像建立 Lambda 函數。
執行期
執行時間會提供在執行環境中執行的特定語言環境。執行時間會轉送叫用事件、內容資訊以及 Lambda 與函數之間的回應。您可以使用由 Lambda 提供的執行時間或是自行建置。如果您將程式碼封裝為 .zip 封存檔,則必須將函數設定為使用符合程式設計語言的執行時間。針對容器映像,您可以在建置映像時包含執行時間。
如需詳細資訊,請參閱Lambda 執行期。
Layer
Lambda 層是可以包含其他程式碼或資料的 .zip 封存檔。圖層可以包含程式庫、自訂執行階段、資料或組態檔案。
利用圖層可封裝與 Lambda 函數搭配使用的程式庫和其他依存項。使用圖層可減少已上傳的部署存檔的大小,並可更快地部署程式碼。圖層還可促進程式碼共用和責任分離,以便您可以在撰寫商業邏輯時更快地重複執行。
每個函數最多可包含五個圖層。層會計入標準 Lambda 部署大小配額。在函數中包含圖層時,內容會擷取到執行環境中的 /opt
目錄。
根據預設,您建立的圖層對您的 AWS 帳戶來說是私有的。您可選擇與其他帳戶共用圖層或將圖層公開。如果您的函數使用不同帳戶發佈的圖層,在已刪除該圖層版本之後,或者撤銷該圖層的存取許可之後,您的函數可繼續使用該圖層版本。但是,您不能使用已刪除的圖層版本來建立新函數或更新函數。
部署為容器映像的函數不使用圖層。而是在您建置映像時,將偏好的執行時間、程式庫和其他相依項封裝為容器映像。
如需詳細資訊,請參閱使用層管理 Lambda 相依性。
並行數量
並行數量是函式在任何指定時間服務的請求數。叫用函數時,Lambda 會佈建函數的執行個體來處理事件。當函數程式碼完成執行時,它會處理另一項請求。如果在請求仍在處理時再次呼叫該函數,則會佈建另一個執行個體,進而增加函數的並行數量。
並行性受「 AWS 地區」層級的配額限制。您可以設定個別函式來限制其並行數量,或讓它們可以達到特定的並行數量層級。如需詳細資訊,請參閱為函數配置保留並發。
限定詞
當您叫用或檢視函式時,您可以包含限定詞來指定版本或別名。版本是具有數值限定詞的函式代碼和配置的不可變快照。例如:my-function:1
。別名是版本的指標,您可以進行更新以映射至不同的版本,或分割兩個版本之間的流量。例如:my-function:BLUE
。您可以同時使用版本和別名,為用戶端提供穩定的界面來叫用您的函數。
如需詳細資訊,請參閱管理 Lambda 數版本。
目的地
目的地是 Lambda 可以從非同步叫用傳送事件的 AWS 資源。可對處理失敗的事件設定目的地。某些服務也支援處理成功的事件的目的地。
如需詳細資訊,請參閱新增目的地。