使用 .zip 文件存档部署 Python Lambda 函数 - Amazon Lambda
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

注意

对 Python 2.7 运行时的支持将于 2021 年 7 月 15 日开始结束。有关更多信息,请参阅 运行时支持策略

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

要为 .zip 文件存档创建部署程序包,可以使用内置的 .zip 文件存档实用工具或任何其他 .zip 文件实用工具(例如 7zip)作为命令行工具。将 .zip 文件用作部署程序包,需遵循以下要求:

  • .zip 文件会包含函数的代码以及用于在 Lambda 上运行函数代码的所有依赖项(如果适用)。如果函数仅依赖于标准库或 Amazon 开发工具包库,则 .zip 文件中无需包含这些库。受支持的 Lambda 运行时 环境中包含这些库。

  • 如果 .zip 文件大于 50 MB,我们建议将其从 Amazon Simple Storage Service (Amazon S3) 存储桶上传到您的函数。

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

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

  • Lambda 使用 POSIX 文件权限,因此在创建 .zip 文件存档之前,您可能需要为部署程序包文件夹设置权限

本节介绍如何创建 .zip 文件作为部署程序包,然后使用 .zip 文件通过 Amazon Command Line Interface (Amazon CLI) 将函数代码部署到 Lambda。

先决条件

Amazon CLI 是一种开源工具,让您能够在命令行 Shell 中使用命令与 Amazon 服务进行交互。要完成本节中的步骤,您必须满足以下条件:

什么是运行时依赖项?

创建或更新具有或不具有运行时依赖项的 Lambda 函数时,需要部署程序包。部署程序包充当源代码包,用于在 Lambda 上运行函数的代码和依赖项(如果适用)。

依赖项可以是函数代码的 Lambda 运行时环境中未包含的任何程序包、模块或其他程序集依赖项。有关更多信息,请参阅 什么是运行时依赖项?

以下示例描述了不具有运行时依赖项的 Lambda 函数:

  • 如果函数的代码位于 Python 3.8 中,且它仅依赖于标准的 Python 数学和日志记录库,则 .zip 文件无需中包含这些库。python3.8 运行时中包含这些库。

  • 如果函数的代码仅依赖于 Amazon SDK for Python (Boto3),则 .zip 文件中无需包含 boto3 库。python3.8 运行时中包含这些库。

有关 Amazon 开发工具包的完整列表,请参阅在 Amazon 上进行构建的工具