

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

# 為函數新增層
<a name="adding-layers"></a>

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

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

您必須先執行下列動作，才能設定 Lambda 函數以使用層：
+ [封裝層內容](packaging-layers.md)
+ [在 Lambda 中建立層](creating-deleting-layers.md)
+ 確認您擁有對層版本呼叫 [GetLayerVersion](https://docs.aws.amazon.com/lambda/latest/api/API_GetLayerVersion.html) API 的許可。對於 中的函數 AWS 帳戶，您必須在[使用者政策](access-control-identity-based.md)中擁有此許可。若要在其他帳號中使用圖層，其他帳戶的擁有者必須在[資源型策略](access-control-resource-based.md)中授與您的帳戶許可。如需範例，請參閱 [將 Lambda 層存取權授予其他帳戶](permissions-layer-cross-account.md)。

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

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

**將層新增至函式**

1. 開啟 Lambda 主控台中的[函數頁面](https://console.aws.amazon.com/lambda/home#/functions)。

1. 選擇函式。

1. 向下捲動至**層**區段，然後選擇**新增層**。

1. 在**選擇層**下方選擇層來源：

   1. **AWS layer**：從 [AWS受管擴充功能](extensions-api-partners.md#aws-managed-extensions)清單中選擇。

   1. **自訂層**：選擇在您 AWS 帳戶中建立的層。

   1. **指定 ARN**：若要使用[來自不同 AWS 帳戶](permissions-layer-cross-account.md) 的 layer，例如[第三方延伸](extensions-api-partners.md)模組，請輸入 Amazon Resource Name (ARN)。

1. 選擇**新增**。

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

**若要更新函數的層合併順序 (主控台)**

1. 開啟 Lambda 主控台中的[函數頁面](https://console.aws.amazon.com/lambda/home#/functions)。

1. 選擇要設定的函數。

1. 在 **Layers** (層) 下方，選擇 **Edit** (編輯)

1. 選擇其中一個層。

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

1. 選擇**儲存**。

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

**若要更新函數的層版本 (主控台)**

1. 開啟 Lambda 主控台中的[層頁面](https://console.aws.amazon.com/lambda/home#/layers)。

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

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

1. 選擇您要修改的函數，然後選擇**編輯**。

1. 在**層版本**中選擇要變更的層版本。

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

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

## 尋找圖層資訊
<a name="finding-layer-information"></a>

若要在您的帳戶中尋找與函數執行期相容的層，請使用 [ListLayers](https://docs.aws.amazon.com/lambda/latest/api/API_ListLayers.html) API。例如，您可以使用下列 [list-layers](https://docs.aws.amazon.com/cli/latest/reference/lambda/list-layers.html) AWS Command Line Interface (CLI) 命令：

```
aws lambda list-layers --compatible-runtime python3.14
```

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

```
{
    "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.14"
                ]
            }
        }
    ]
}
```

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

您還可使用 [ListLayerVersions](https://docs.aws.amazon.com/lambda/latest/api/API_ListLayerVersions.html) 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"
            ]
        }
    ]
}
```