Lambda 部署程序包 - Amazon Lambda
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Lambda 部署程序包

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

容器映像

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

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

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

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

.zip 文件存档

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

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

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

使用 Lambda 控制台

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

使用 Lambda 控制台上载 .zip 文件
  1. 打开 Lambda 控制台的 Functions(函数)页面

  2. 选择一个函数。

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

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

  5. 请选择保存

使用Amazon CLI

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

Node.js

使用 .zip 文件归档部署 Node.js Lambda 函数

Python

将 .zip 文件归档用于 Python Lambda 函数

Ruby

将 .zip 文件存档用于 Ruby Lambda 函数

Java

使用 .zip 或 JAR 文件归档部署 Java Lambda 函数

Go

使用 .zip 文件归档部署 Go Lambda 函数

C#

使用 .zip 文件归档构建和部署 C# Lambda 函数

PowerShell

使用.zip 文件存档部署 PowerShell Lambda 函数

使用 Amazon S3

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

图层

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

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

有关层的更多信息,请参阅 使用 Lambda 层

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

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

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

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

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

超过 50MB 的部署包

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

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

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