

# 在 Lambda 中创建和删除层
<a name="creating-deleting-layers"></a>

Lambda 层是包含补充代码或数据的 .zip 文件存档。层通常包含库依赖项、[自定义运行时系统](runtimes-custom.md)或配置文件。

本部分介绍如何在 Lambda 中创建和删除层。有关层的更多概念性信息以及您可能会考虑使用层的原因，请参阅 [使用层管理 Lambda 依赖项](chapter-layers.md)。

[打包层内容](packaging-layers.md)完成后，下一步是在 Lambda 中创建层。本部分演示如何仅使用 Lambda 控制台或 Lambda API 创建和删除层。要使用 AWS CloudFormation 创建层，请参阅 [与层结合使用 AWS CloudFormation](layers-cfn.md)。要使用 AWS Serverless Application Model（AWS SAM）创建层，请参阅 [与层结合使用 AWS SAM](layers-sam.md)。

**Topics**
+ [创建层](#layers-create)
+ [删除层版本](#layers-delete)

## 创建层
<a name="layers-create"></a>

您可以从本地计算机或 Amazon Simple Storage Service（Amazon S3）上传 .zip 文件存档。设置函数的执行环境时，Lambda 将图层内容提取到 `/opt` 目录。

层可以有一个或多个[层版本](chapter-layers.md#lambda-layer-versions)。创建层时，Lambda 将层版本设置为版本 1。您可以随时更改现有层版本的权限。但是，要更新代码或进行其他配置更改，必须创建该层的新版本。

**创建层（控制台）**

1. 打开 Lambda 控制台的 [Layers page](https://console.aws.amazon.com/lambda/home#/layers)（层页面）。

1. 选择 **Create layer**（创建层）。

1. 在 **Layer configuration**（层配置）下，在 **Name**（名称）中，输入层的名称。

1. （可选）对于 **Description**（描述），输入对层的描述。

1. 要上载层代码，请执行以下操作之一：
   + 要从电脑上传 .zip 文件，请选择 **Upload a .zip file**（上传 .zip 文件）。然后，选择 **Upload**（上载）以选择本地 .zip 文件。
   + 要从 Simple Storage Service（Amazon S3）上传文件，请选择 **Upload a file from Amazon S3** [从 Simple Storage Service（Amazon S3）上传文件]。然后，对于 **Amazon S3 link URL**（Simple Storage Service (Amazon S3) 链接 URL），输入文件的链接。

1. （可选）对于**兼容架构**，选择一个值或两个值。有关更多信息，请参阅 [为 Lambda 函数选择和配置指令集架构](foundation-arch.md)。

1. （可选）对于**兼容的运行时系统**，选择与层兼容的运行时系统。

1. （可选）对于 **License**（许可证），输入任何必要的许可证信息。

1. 选择**创建**。

或者，您可以运行 [publish-layer-version](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/publish-layer-version.html) AWS Command Line Interface（CLI）命令。示例：

```
aws lambda publish-layer-version --layer-name my-layer --zip-file fileb://layer.zip --compatible-runtimes python3.14
```

每次运行 `publish-layer-version` 时，Lambda 都将创建一个新[版本的层](chapter-layers.md#lambda-layer-versions)。

## 删除层版本
<a name="layers-delete"></a>

要删除层版本，请使用 [DeleteLayerVersion](https://docs.aws.amazon.com/lambda/latest/api/API_DeleteLayerVersion.html) API 操作。例如，运行 [delete-layer-version](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/delete-layer-version.html) AWS CLI 命令并指定层名称和层版本。

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

删除一个层版本后，您无法再将 Lambda 函数配置为使用该层版本。但是，已使用此版本的任何函数仍能访问它。此外，Lambda 绝不会重用版本号作为层名称。

在计算[配额](gettingstarted-limits.md)时，删除层版本意味着它不再计入默认的 75 GB 函数和层存储配额中。但是，对于消耗已删除层版本的函数，层内容仍计入函数的部署包大小配额（即 .zip 文件存档为 250 MB）。