向函数添加层
Lambda 层是包含补充代码或数据的 .zip 文件存档。层通常包含库依赖项、自定义运行时系统或配置文件。
本部分介绍如何向 Lambda 函数添加层。有关层的更多概念性信息以及您可能会考虑使用层的原因,请参阅 使用层管理 Lambda 依赖项。
在将 Lambda 函数配置为使用层之前,您必须:
-
确保您拥有对层版本调用 GetLayerVersion API 的权限。对于 Amazon Web Services 账户 中的函数,您必须在用户策略中拥有此权限。要在另一个账户中使用层,该账户的拥有者必须在基于资源的策略中授予您的账户权限。有关示例,请参阅 向其他账户授予 Lambda 层访问权限。
您最多可以在 Lambda 函数中添加五个层。函数和所有层的总解压缩大小不能超出 250 MB 的解压缩部署程序包大小配额。有关更多信息,请参阅 Lambda 配额。
即使在删除该层版本或撤消该层的访问权限后,函数也可以继续使用已添加的任何层版本。但是,您无法创建使用已删除层版本的新函数。
向函数添加层
打开 Lamba 控制台的函数页面
。 -
选择函数。
-
向下滚动到层部分,然后选择添加层。
-
在选择层下,选择一个层源:
-
Amazon 层:从 Amazon 托管扩展列表中进行选择。
-
自定义层:选择在您的 Amazon Web Services 账户中创建的层。
-
指定 ARN:要使用其他 Amazon Web Services 账户的层(例如第三方扩展),请输入 Amazon 资源名称(ARN)。
-
-
选择添加。
添加层的顺序就是 Lambda 将层内容合并到执行环境中的顺序。您可以使用控制台更改层合并顺序。
更新函数的层合并顺序(控制台)
打开 Lamba 控制台的函数页面
。 -
选择要配置的函数。
-
在层下,选择编辑。
-
选择其中一个图层。
-
选择提前合并或者稍后合并以调整层的顺序。
-
选择保存。
层受版本控制。每个层版本的内容都是不可变的。层所有者可以发布新的层版本以提供更新内容。您可以使用控制台更新附加到函数的层版本。
更新函数的层版本(控制台)
-
打开 Lambda 控制台的 Layers page
(层页面)。 -
选择要为其更新版本的层。
-
选择使用此版本的函数选项卡。
-
选择要修改的函数,然后选择编辑。
-
从层版本中,选择要更改的目标层版本。
-
选择 Update functions(更新函数)。
不能跨 Amazon 账户更新函数的层版本。
查找层信息
要查找账户中与函数运行时系统兼容的层,请使用 ListLayers API。例如,您可以使用以下 list-layers Amazon 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" ] } ] }