部署 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
Amazon 提供了一组开源基本镜像,您可以使用这些镜像为函数代码构建容器镜像。您还可以使用其他容器注册表的备选基本镜像。Amazon 还提供了一个开源运行时客户端,您可以将其添加到备选基本镜像以使其与 Lambda 服务兼容。
此外,Amazon 还为您提供了运行时接口仿真器,以便使用 Docker CLI 等工具在本地测试函数。
注意
您可以创建每个容器镜像以与 Lambda 支持的某个指令集架构兼容。Lambda 为每个指令集架构提供基本镜像,还提供同时支持这两种架构的基本镜像。
您为函数构建的镜像只能针对其中一个架构。
将函数打包为容器映像并进行部署无需额外付费。当调用部署为容器镜像的函数时,您需要为调用请求和执行持续时间付费。在 Amazon ECR 中存储容器镜像则会产生相应费用。有关更多信息,请参阅 Amazon ECR 定价
映像安全
Lambda 首次从原始源 (Amazon ECR) 下载容器镜像时,容器镜像将使用经过身份验证的收敛加密方法进行优化、加密和存储。解密客户数据所需的所有密钥都使用Amazon KMS客户托管密钥进行保护。要跟踪和审计 Lambda 的客户托管密钥使用情况,可以查看 Amazon CloudTrail 日志。