AWS lambda(无服务器)是否像支持一次性功能一样支持应用程序的安装?
Does AWS lambda (serverless) support the installation of applications the same way it supports one-off functions?
我知道使用 AWS Lambda 允许我们将单个函数提交到运行时并让它们在需要时执行。但是这些功能所依赖的软件呢?这些在哪里安装?每次启动 lambda 实例时都会进行安装和配置吗?对于更大的 applications/detailed 配置,这不会花费一些时间吗?
或者安装的软件是否位于服务器上(比如在 EC2 实例上),然后只是根据需要由 lambda 函数调用?
基本上有两种方法可以管理 Lambda 函数的依赖关系。
使用 lambda 层:Lambda 层是包含附加代码的存档,例如库、依赖项,甚至自定义运行时。当您在函数中包含层时,内容将被提取到执行环境中的 /opt 目录中。每个函数最多可以包含五个层,这将计入标准 Lambda 部署大小限制。查看at this article了解更多详情。
使用容器镜像:您可以使用 Docker 命令行界面 (CLI) 等工具将您的代码和依赖项打包为容器镜像。然后,您可以将映像上传到托管在 Amazon Elastic Container Registry (Amazon ECR) 上的容器注册表。参见官方文档 here.
因为 Lambda 可以缩放到零,所以它会遇到所谓的 cold star issues。这意味着除非有可用的热 运行 容器实例,否则 Lambda 必须“冷启动”一个新容器,这会导致一些延迟,特别是对于占用空间大的应用程序堆栈,例如基于 JVM 的应用程序堆栈。
最好的,斯特凡
我知道使用 AWS Lambda 允许我们将单个函数提交到运行时并让它们在需要时执行。但是这些功能所依赖的软件呢?这些在哪里安装?每次启动 lambda 实例时都会进行安装和配置吗?对于更大的 applications/detailed 配置,这不会花费一些时间吗?
或者安装的软件是否位于服务器上(比如在 EC2 实例上),然后只是根据需要由 lambda 函数调用?
基本上有两种方法可以管理 Lambda 函数的依赖关系。
使用 lambda 层:Lambda 层是包含附加代码的存档,例如库、依赖项,甚至自定义运行时。当您在函数中包含层时,内容将被提取到执行环境中的 /opt 目录中。每个函数最多可以包含五个层,这将计入标准 Lambda 部署大小限制。查看at this article了解更多详情。
使用容器镜像:您可以使用 Docker 命令行界面 (CLI) 等工具将您的代码和依赖项打包为容器镜像。然后,您可以将映像上传到托管在 Amazon Elastic Container Registry (Amazon ECR) 上的容器注册表。参见官方文档 here.
因为 Lambda 可以缩放到零,所以它会遇到所谓的 cold star issues。这意味着除非有可用的热 运行 容器实例,否则 Lambda 必须“冷启动”一个新容器,这会导致一些延迟,特别是对于占用空间大的应用程序堆栈,例如基于 JVM 的应用程序堆栈。
最好的,斯特凡