AWS推出适用于Lambda的Amazon Linux 2023运行时

AWS 推出 Amazon Linux 2023 (AL2023) 作为 Lambda 服务的托管运行时和容器基础镜像

AWS 最近推出了 Amazon Linux 2023 (AL2023),作为其 Lambda 服务的托管运行时和容器基础镜像。该运行时为开发者提供了一个仅包含操作系统的环境,用于运行 Lambda 函数。

AL2023 的主要改进

Amazon Linux 2 运行时 相比,AL2023 具有以下主要改进:

  • 更小的部署体积:AL2023 的部署体积显著减小,适用于容器化环境。
  • 更新的库版本:包括 glibc 等常见库的更新版本。
  • 新的包管理器:AL2023 引入了新的包管理器,进一步优化了包管理体验。
  • 未来 Lambda 运行时的基础:AL2023 将成为未来 Lambda 运行时(如 Node.js 20、Python 3.12、Java 21 和 .NET 8)的基础。

AL2023 的 OS-only 环境

AWS 高级解决方案架构师 Rakshith Rao 解释了 AL2023 的 OS-only 环境:

Lambda 为 Java、Python、Node.js、.NET 和 Ruby 提供了托管运行时。然而,如果开发者希望使用 Lambda 托管语言运行时不支持的语言开发 Lambda 函数,可以通过 "provided" 运行时家族获得一个仅包含操作系统的环境,用于运行任何语言编写的代码。AL2023 扩展了 "provided" 运行时家族,支持 Amazon Linux 2023。

使用 OS-only 运行时的三种场景

开发者可以在以下三种场景中使用 OS-only 运行时:

  1. 编译型语言:如 Go、Rust、C++、.NET Native AOT 和 Java GraalVM Native,只需将编译后的二进制文件上传到 Lambda,仅需操作系统环境即可执行。
  2. 第三方语言运行时:如用于 PHP 的 Bref 或用于 Swift 的 Swift AWS Lambda Runtime,以支持基于这些语言的 Lambda 函数。
  3. 自定义运行时:用于部署 Lambda 托管运行时未涵盖的语言或版本,例如 Node.js 19,Lambda 仅支持 LTS 版本。

使用 AL2023 自定义运行时的步骤

开发者可以通过以下方式使用 AL2023 自定义运行时:

  • 在 Lambda 控制台的 创建函数页面 上,选择 "Provide your own bootstrap on Amazon Linux 2023" 作为运行时值。
  • 使用 AWS SAM 模板构建和部署 Lambda 函数,将 provided.al2023 作为运行时的值。示例代码如下:

    Resources:
      HelloWorldFunction:
        Type: AWS::Serverless::Function
        Properties:
          CodeUri: hello-world/
          Handler: my.bootstrap.file
          Runtime: provided.al2023

    此外,开发者还可以将基于 AL2 自定义运行时的 Lambda 函数迁移到 AL2023。

开发者反馈

Stax 的工程负责人 Mark WolfeTwitter 上表示:

很高兴看到 AWS Lambda 提供了更小的 Docker 基础镜像,尽管我不确定为什么这篇文章提到了 PHP 和 Swift...如果你还没有从 go1.x 迁移到 AL2,现在可以直接跳过 AL2,迁移到 AL2023。

可用性

AL2023 目前已在 Lambda 支持的所有区域上线,除了中国区和 GovCloud 区域。

通过 AL2023,AWS 为开发者提供了更轻量、更灵活的运行时环境,支持更多语言和自定义需求,进一步提升了 Lambda 服务的灵活性和扩展性。

阅读 37
0 条评论