在 Lambda 中建立和刪除層 - AWS Lambda

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

在 Lambda 中建立和刪除層

Lambda 層是含有補充程式碼或資料的 .zip 封存檔。層通常具備程式庫相依性、自訂執行期或組態檔案。

本節會說明如何在 Lambda 中建立和刪除層。若要進一步了解有關層的概念性資訊以及您可能會考慮使用的原因,請參閱 使用層管理 Lambda 相依性

封裝層內容 後,下一步是在 Lambda 中建立層。本節會示範如何僅使用 Lambda 主控台或 Lambda API 建立和刪除層。若要使用 AWS CloudFormation 建立層,請參閱 AWS CloudFormation 與圖層一起使用。若要使用 AWS Serverless Application Model (AWS SAM) 建立層,請參閱 AWS SAM 與圖層一起使用

建立圖層

若要建立層,您可以從本機電腦或 Amazon Simple Storage Service (Amazon S3) 中上傳 .zip 封存檔。設定函數的執行環境時,Lambda 會將層內容擷取到 /opt 目錄中。

層可以有一個或多個 層版本。建立層時,Lambda 將層版本設定為版本 1。您可以隨時變更既有層版本的許可。不過,若要更新程式碼或進行其他組態變更,您必須建立新的層版本。

建立圖層 (主控台)
  1. 開啟 Lambda 主控台中的 層頁面

  2. 選擇 建立圖層

  3. Layer configuration (圖層組態) 下,為 Name (名稱) 輸入圖層的名稱。

  4. (選用) 在 Description (說明) 中,輸入 Layer 的說明。

  5. 若要上傳 Layer 程式碼,請執行下列其中一個動作:

    • 若要從電腦上傳 .zip 檔案,請選擇 Upload a .zip file (上傳 .zip 檔案)。然後,選擇 Upload (上傳) 以選取您的本機 .zip 檔案。

    • 若要從 Amazon S3 上傳檔案,請選擇 Upload a file from Amazon S3 (從 Amazon S3 上傳檔案)。然後,對於 Amazon S3 連結 URL,輸入檔案的連結。

  6. (選用) 對於相容架構,選擇一個值或兩個值。如需詳細資訊,請參閱 選取並設定 Lambda 函數的指令集架構

  7. (選擇性) 在 相容執行期 中選擇相容於您的層的執行期。

  8. (選擇性) 在 License (授權) 中,輸入任何必要的授權資訊。

  9. 選擇建立

或者,您也可以使用 PublishLayerVersionAPI 建立圖層。例如,您可以使用 publish-layer-version AWS Command Line Interface (CLI) 命令並指定名稱、指示和 .zip 封存檔。授權資訊、相容執行期以及相容架構參數皆為選填。

aws lambda publish-layer-version --layer-name my-layer \ --description "My layer" \ --license-info "MIT" \ --zip-file fileb://layer.zip \ --compatible-runtimes python3.10 python3.11 \ --compatible-architectures "arm64" "x86_64"

您應該會看到類似下列的輸出:

{ "Content": { "Location": "https://awslambda-us-east-2-layers.s3.us-east-2.amazonaws.com/snapshots/123456789012/my-layer-4aaa2fbb-ff77-4b0a-ad92-5b78a716a96a?versionId=27iWyA73cCAYqyH...", "CodeSha256": "tv9jJO+rPbXUUXuRKi7CwHzKtLDkDRJLB3cC3Z/ouXo=", "CodeSize": 169 }, "LayerArn": "arn:aws:lambda:us-east-2:123456789012:layer:my-layer", "LayerVersionArn": "arn:aws:lambda:us-east-2:123456789012:layer:my-layer:1", "Description": "My layer", "CreatedDate": "2023-11-14T23:03:52.894+0000", "Version": 1, "CompatibleArchitectures": [ "arm64", "x86_64" ], "LicenseInfo": "MIT", "CompatibleRuntimes": [ "python3.10", "python3.11" ] }

每次呼叫 publish-layer-version 時都會建立一個新版本的層。

刪除圖層版本

若要刪除圖層版本,請使用 DeleteLayerVersionAPI。例如,您可以使用 delete-layer-version CLI 命令並指定層的名稱和版本。

aws lambda delete-layer-version --layer-name my-layer --version-number 1

刪除層版本之後,您無法再設定 Lambda 函數以便使用它。不過,凡已使用該版本的任何函式均能繼續對其進行存取。此外,Lambda 永遠不會重複使用層名稱的版本編號。