瞭解關鍵的 Lambda 概 - AWS Lambda

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

瞭解關鍵的 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 支援兩種部署套件:

執行期

執行時間會提供在執行環境中執行的特定語言環境。執行時間會轉送叫用事件、內容資訊以及 Lambda 與函數之間的回應。您可以使用由 Lambda 提供的執行時間或是自行建置。如果您將程式碼封裝為 .zip 封存檔,則必須將函數設定為使用符合程式設計語言的執行時間。針對容器映像,您可以在建置映像時包含執行時間。

如需詳細資訊,請參閱Lambda 執行期

Layer

Lambda 是可以包含其他程式碼或資料的 .zip 封存檔。圖層可以包含程式庫、自訂執行階段、資料或組態檔案。

利用圖層可封裝與 Lambda 函數搭配使用的程式庫和其他依存項。使用圖層可減少已上傳的部署存檔的大小,並可更快地部署程式碼。圖層還可促進程式碼共用和責任分離,以便您可以在撰寫商業邏輯時更快地重複執行。

每個函數最多可包含五個圖層。層會計入標準 Lambda 部署大小配額。在函數中包含圖層時,內容會擷取到執行環境中的 /opt 目錄。

根據預設,您建立的圖層對您的 AWS 帳戶來說是私有的。您可選擇與其他帳戶共用圖層或將圖層公開。如果您的函數使用不同帳戶發佈的圖層,在已刪除該圖層版本之後,或者撤銷該圖層的存取許可之後,您的函數可繼續使用該圖層版本。但是,您不能使用已刪除的圖層版本來建立新函數或更新函數。

部署為容器映像的函數不使用圖層。而是在您建置映像時,將偏好的執行時間、程式庫和其他相依項封裝為容器映像。

如需詳細資訊,請參閱使用層管理 Lambda 相依性

並行數量

並行數量是函式在任何指定時間服務的請求數。叫用函數時,Lambda 會佈建函數的執行個體來處理事件。當函數程式碼完成執行時,它會處理另一項請求。如果在請求仍在處理時再次呼叫該函數,則會佈建另一個執行個體,進而增加函數的並行數量。

並行性受「 AWS 地區」層級的配額限制。您可以設定個別函式來限制其並行數量,或讓它們可以達到特定的並行數量層級。如需詳細資訊,請參閱為函數配置保留並發

限定詞

當您叫用或檢視函式時,您可以包含限定詞來指定版本或別名。版本是具有數值限定詞的函式代碼和配置的不可變快照。例如:my-function:1別名是版本的指標,您可以進行更新以映射至不同的版本,或分割兩個版本之間的流量。例如:my-function:BLUE。您可以同時使用版本和別名,為用戶端提供穩定的界面來叫用您的函數。

如需詳細資訊,請參閱管理 Lambda 數版本

目的地

目的地是 Lambda 可以從非同步叫用傳送事件的 AWS 資源。可對處理失敗的事件設定目的地。某些服務也支援處理成功的事件的目的地。

如需詳細資訊,請參閱新增目的地