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

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

部署 Lambda 函数

您可以通过上传 zip 文件归档或创建并上载容器镜像,将代码部署到 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 运行时需要权限才能读取部署包中的文件。在 Linux 权限八进制表示法中,Lambda 对于不可执行文件(rw-r--r--)需要 644 个权限,对于目录和可执行文件需要 755 个权限(rwxr-xr-x)。

在 Linux 和 MacOS 中,使用 chmod 命令更改部署包中文件和目录的文件权限。例如,要为可执行文件提供正确的权限,请运行以下命令。

chmod 755 <filepath>

要在 Windows 中更改文件权限,请参阅 Microsoft Windows 文档中的 Set, View, Change, or Remove Permissions on an Object

容器映像

您可以使用 Docker 命令行界面 (CLI) 等工具将代码和依赖项打包为容器镜像。然后,您可以将镜像上载到在 Amazon Elastic Container Registry (Amazon ECR) 上托管的容器注册表。

调用函数时,Lambda 会将容器镜像部署到执行环境中。Lambda 初始化任何扩展,然后运行函数的初始化代码(主处理程序外的代码)。请注意,函数初始化持续时间包括在计费执行时间中。

随后,Lambda 通过调用函数配置(ENTRYPOINT 和 CMD 容器镜像设置)中指定的代码入口点来运行函数。

Amazon 提供了一组开源基本镜像,您可以使用这些镜像为函数代码构建容器镜像。您还可以使用其他容器注册表的备选基本镜像。Amazon 还提供了一个开源运行时客户端,您可以将其添加到备选基本镜像以使其与 Lambda 服务兼容。

此外,Amazon 还为您提供了运行时接口仿真器,以便使用 Docker CLI 等工具在本地测试函数。

注意

您可以创建每个容器镜像以与 Lambda 支持的某个指令集架构兼容。Lambda 为每个指令集架构提供基本镜像,还提供同时支持这两种架构的基本镜像。

您为函数构建的镜像只能针对其中一个架构。

将函数打包为容器映像并进行部署无需额外付费。当调用部署为容器镜像的函数时,您需要为调用请求和执行持续时间付费。在 Amazon ECR 中存储容器镜像则会产生相应费用。有关更多信息,请参阅 Amazon ECR 定价

映像安全

Lambda 首次从原始源 (Amazon ECR) 下载容器镜像时,容器镜像将使用经过身份验证的收敛加密方法进行优化、加密和存储。解密客户数据所需的所有密钥都使用Amazon KMS客户托管密钥进行保护。要跟踪和审计 Lambda 的客户托管密钥使用情况,可以查看 Amazon CloudTrail 日志