Lambda 部署程序包 - AWS Lambda

Lambda 部署程序包

您的 AWS Lambda 函数代码由脚本或编译的程序及其依赖项组成。您可以使用部署程序包来将函数代码部署到 Lambda。Lambda 支持两种类型的部署程序包:容器映像和 .zip 文件存档。

容器映像

容器映像包括基本操作系统、运行时、Lambda 扩展、应用程序代码及其依赖项。您还可以将静态数据(例如机器学习模型)添加到映像中。

Lambda 提供了一组开源基本映像,您可以使用这些映像构建容器映像。要创建和测试容器映像,您可以使用 AWS Serverless Application Model (AWS SAM) 命令行界面 (CLI) 或本机容器工具(如 Docker CLI)。

您将容器映像上传到 Amazon Elastic Container Registry (Amazon ECR),这是一项托管 AWS 容器映像注册表服务。要将映像部署到函数,请使用 Lambda 控制台、Lambda API、命令行工具或 AWS 开发工具包指定 Amazon ECR 映像 URL。

有关 Lambda 容器映像的更多信息,请参阅 在 Lambda 中使用容器映像

.zip 文件存档

.zip 文件存档包括您的应用程序代码及其依赖项。当您使用 Lambda 控制台或工具包编写函数时,Lambda 会自动创建代码的 .zip 文件存档。

使用 Lambda API、命令行工具或 AWS 开发工具包创建函数时,您必须创建部署程序包。如果函数使用已编译的语言,您也必须创建部署程序包,或者为函数添加依赖项。要部署函数的代码,您需要从 Amazon Simple Storage Service (Amazon S3) 或本地计算机上传部署程序包。

您可以使用 Lambda 控制台(AWS Command Line Interface (AWS CLI))将 .zip 文件作为部署程序包上传,或上传至 Amazon Simple Storage Service (Amazon S3) 存储桶。

使用 Lambda 控制台

以下步骤演示如何使用 Lambda 控制台将 .zip 文件作为部署程序包上传。

使用 Lambda 控制台上传 .zip 文件

  1. 打开 Lambda 控制台的函数页面

  2. 选择一个函数。

  3. Code Source(代码源)窗格中,选择 Upload from(上传自),然后选择 .zip file(.zip 文件)。

  4. 选择上传以选择本地 .zip 文件。

  5. 选择 Save

使用 AWS CLI

您可以使用 AWS Command Line Interface (AWS CLI) 将 .zip 文件作为部署程序包上传。有关特定于语言的说明,请参阅以下主题。

使用 Amazon S3

您可以使用 Amazon Simple Storage Service (Amazon S3) 将 .zip 文件作为部署包上传。有关更多信息,请参阅 使用其他 AWS 服务构建部署程序包

如果使用 .zip 文件存档部署函数代码,则可以使用 Lambda 层作为库、自定义运行时和其他函数依赖项的分发机制。利用层,您可独立于其使用的不变代码和资源来管理开发中的函数代码。您可以将函数配置为使用您创建的层、AWS 提供的层或来自其他 AWS 客户的层。

不要将层与容器映像一起使用。相反,在构建映像时,您可以将首选运行时、库和其他依赖项打包到容器映像。

有关层的更多信息,请参阅 创建和共享 Lambda 层

使用其他 AWS 服务构建部署程序包

以下部分将介绍可用于打包 Lambda 函数依赖项的其他 AWS 服务。

包含 C 或 C++ 库的部署程序包

如果您的部署程序包包含本机库,则可以使用AWS Serverless Application Model(AWS SAM) 构建部署程序包。您可以将 AWS SAM CLI sam build 命令与 --use-container 配合使用来创建部署程序包。此选项在与 Lambda 执行环境兼容的 Docker 映像内构建部署程序包。

有关更多信息,请参阅 AWS Serverless Application Model 开发人员指南 中的 sam build

超过 50 MB 的部署程序包

如果您的部署程序包大于 50 MB,我们建议您将函数代码和依赖项上传到 Amazon S3 存储桶。

您可以创建部署程序包,然后将 .zip 文件上传到 AWS 区域中您要在其中创建 Lambda 函数的 Amazon S3 存储桶。创建 Lambda 函数时,请在 Lambda 控制台上或使用 AWS CLI 指定 S3 存储桶名称和对象密钥名称。

要使用 Amazon S3 控制台创建存储桶,请参阅《Amazon Simple Storage Service 控制台用户指南》中的如何创建 S3 存储桶?