Lambda 概念 - AWS Lambda

Lambda 概念

Lambda 會執行函數的執行個體來處理事件。您可以使用 Lambda API 來直接叫用您的函數,也可以設定 AWS 服務或資源來叫用您的函數。

函數

函數是您可以叫用以在 Lambda 中執行程式碼的資源。函數具有程式碼,用於處理您傳遞至函數的事件,或傳送至函數的其他 AWS 服務。

如需詳細資訊,請參閱 設定 AWS Lambda 函數

觸發條件

觸發是叫用 Lambda 函數的資源或組態。觸發程式包括您可設定以叫用函數和事件來源映射的 AWS 服務。事件來源映射是 Lambda 中的資源,它可從串流或佇列中讀取項目並叫用函數。如需更多詳細資訊,請參閱 叫用 Lambda 函數搭配其他服務使用 AWS Lambda

事件

事件是一種 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 服務事件的詳細資訊,請參閱 搭配其他服務使用 AWS Lambda

執行環境

執行環境為您的 Lambda 函數提供了安全且隔離的執行時間環境。執行環境會管理執行函數所需的程序和資源。執行環境為函數以及與函數關聯的任何延伸項目提供生命週期支援。

如需詳細資訊,請參閱 AWS Lambda 執行環境

指令集架構

指令集架構會決定 Lambda 用來執行函數的電腦處理器類型。Lambda 提供了指令集架構的選擇:

  • arm64 - 64 位元的 ARM 架構,適用於 AWS Graviton2 處理器

  • x86_64 - 64 位元 x86 架構,適用於 x86 處理器。

如需詳細資訊,請參閱 Lambda 指令集架構

部署套件

使用部署套件部署 Lambda 函數程式碼。Lambda 支援兩種部署套件:

  • 包含函數程式碼及其相依項的 .zip 封存檔。Lambda 為您的函數提供作業系統和執行時間。

  • 開放式容器方案 (OCI) 規範相容的容器映像。您可以將函數程式碼和相依項新增至映像。還必須包含作業系統和 Lambda 執行時間。

如需詳細資訊,請參閱 Lambda 部署套件

執行時間

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

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

Layer

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

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

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

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

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

如需詳細資訊,請參閱 建立和共用 Lambda 層

延伸

Lambda 擴展可讓您增強函數。例如,您可以使用延伸項目將您的函式與偏好的監控、可觀度、安全性和控管工具整合。您可以從 AWS Lambda 合作夥伴提供的廣泛工具集中選擇,也可以建立自己的 Lambda 擴展

內部延伸項目會在執行階段程序中執行,並與執行階段共用相同的生命週期。外部延伸項目會在執行環境中做為個別的程序執行。在叫用函式之前初始化外部延伸項目,並與函式的執行階段平行執行,並在函式叫用完成後繼續執行。

如需詳細資訊,請參閱 使用 Lambda 擴展

並行數量

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

並行數量受限於 AWS 區域層級配額。您可以設定個別函式來限制其並行數量,或讓它們可以達到特定的並行數量層級。如需詳細資訊,請參閱 管理 Lambda 預留並行

限定詞

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

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

Destination (目的地)

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

如需詳細資訊,請參閱 設定非同步叫用的目的地