為函數新增層 - AWS Lambda

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

為函數新增層

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

本節會說明如何將層新增至 Lambda 函數。若要進一步了解有關層的概念性資訊以及您可能會考慮使用的原因,請參閱 使用層管理 Lambda 相依項

您必須先執行下列動作,才能設定 Lambda 函數以使用層:

您最多可以將五個層新增至 Lambda 函數。函數和所有圖層的解壓縮大小總計不得超過解壓縮部署套件大小 250 MB 的配額。如需詳細資訊,請參閱Lambda 配額

您的函數可以繼續使用您已新增的任何層版本,即使該層版本已被刪除,或您存取層的許可被撤銷後也是如此。但是,您不能建立使用已刪除圖層版本的新函數。

將圖層新增至函數
  1. 開啟 Lambda 主控台中的函數頁面

  2. 選擇 函數。

  3. 向下捲動至區段,然後選擇新增層

  4. 選擇層下方選擇層來源:

    1. AWS layer:從 AWS受管擴充功能清單中選擇。

    2. 自訂 layer:選擇在您的 中建立的 layer AWS 帳戶。

    3. 指定 ARN:若要使用來自不同 AWS 帳戶 的 layer,例如第三方延伸模組,請輸入 Amazon Resource Name (ARN)。

  5. 選擇新增

新增層的順序即 Lambda 將層內容合併至執行環境的順序。您可以使用主控台來變更層合併順序。

若要更新函數的層合併順序 (主控台)
  1. 開啟 Lambda 主控台中的函數頁面

  2. 選擇要設定的函數。

  3. Layers (層) 下方,選擇 Edit (編輯)

  4. 選擇其中一個層。

  5. 選擇 Merge earlier (先前合併) 或 Merge later (稍後合併) 來調整層的順序。

  6. 選擇儲存

層已設定版本控制。每個層版本的內容都是不可變的。層擁有者可發行新的層版本,以提供更新內容。您可以使用主控台來更新函數附加的層版本。

若要更新函數的層版本 (主控台)
  1. 開啟 Lambda 主控台中的層頁面

  2. 選擇您要更新版本的層。

  3. 選擇使用此版本的函數標籤。

  4. 選擇您要修改的函數,然後選擇編輯

  5. 層版本中選擇要變更的層版本。

  6. 選擇 Update functions (更新函數)。

您無法跨 AWS 帳戶更新函數層版本。

尋找圖層資訊

若要在您的帳戶中尋找與函數執行期相容的層,請使用 ListLayers API。例如,您可以使用下列 list-layers AWS Command Line Interface (CLI) 命令:

aws lambda list-layers --compatible-runtime python3.13

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

{ "Layers": [ { "LayerName": "my-layer", "LayerArn": "arn:aws:lambda:us-east-2:123456789012:layer:my-layer", "LatestMatchingVersion": { "LayerVersionArn": "arn:aws:lambda:us-east-2:123456789012:layer:my-layer:2", "Version": 2, "Description": "My layer", "CreatedDate": "2025-04-15T00:37:46.592+0000", "CompatibleRuntimes": [ "python3.13" ] } } ] }

若要在您的帳戶中列出所有層,請忽略 --compatible-runtime 選項。回應詳細資訊會顯示各個層的最新版本。

您還可使用 ListLayerVersions API 取得層的最新版本。舉例來說,您可以使用下列 list-layer-versions CLI 命令:

aws lambda list-layer-versions --layer-name my-layer

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

{ "LayerVersions": [ { "LayerVersionArn": "arn:aws:lambda:us-east-2:123456789012:layer:my-layer:2", "Version": 2, "Description": "My layer", "CreatedDate": "2023-11-15T00:37:46.592+0000", "CompatibleRuntimes": [ "java11" ] }, { "LayerVersionArn": "arn:aws:lambda:us-east-2:123456789012:layer:my-layer:1", "Version": 1, "Description": "My layer", "CreatedDate": "2023-11-15T00:27:46.592+0000", "CompatibleRuntimes": [ "java11" ] } ] }