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

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

注意

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

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

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

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

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

  • .zip 文件不得包含用 C 或 C ++ 编写的库。如果 .zip 文件包含 C 扩展库(例如 Pillow (PIL) 或 numpy库),我们建议使用 AWS 无服务器应用程序模型 (AWS SAM) 命令行界面 (CLI) 构建部署程序包。

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

先决条件

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

什么是运行时依赖项?

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

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

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

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

  • 如果函数的代码仅依赖于 适用于 Python (Boto3) 的 AWS 软件开发工具包,则 .zip 文件中无需包含 boto3 库。python3.8 运行时中包含这些库。

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