何时使用 Lambda 仅限操作系统的运行时
Lambda 为 Java、Python、Node.js、.NET 和 Ruby 提供托管运行时系统。要使用无法作为托管运行时系统使用的编程语言创建 Lambda 函数,请使用仅限操作系统的运行时系统(provided
运行时系统系列)。仅限操作系统的运行时系统有三种主要用例:
-
本机提前(AOT)编译:Go、Rust 和 C++ 等语言本机编译为可执行的二进制文件,不需要专用语言运行时系统。这些语言只需要一个可以运行编译后二进制文件的操作系统环境。您还可以使用 Lambda 的仅限操作系统的运行时系统来部署使用.NET 本机 AOT 和 Java GraalVM 本机编译的二进制文件。
您必须在二进制文件中包含运行时系统接口客户端。运行时系统接口客户端调用 将 Lambda 运行时 API 用于自定义运行时 来检索函数调用,然后调用您的函数处理程序。Lambda 为 Go、.NET 本机 AOT、C++
和 Rust(实验)提供了运行时系统接口客户端。 您的二进制文件必须在 Linux 环境下编译,且与您计划用于函数的指令集架构(x86_64 或 arm64)相同。
-
第三方运行时系统:您可以使用现成的运行时来运行 Lambda 函数,例如适用于 PHP 的 Bref
或适用于 Swift 的 SwiftAWS Lambda 运行时系统 。 -
自定义运行时系统:您可以为 Lambda 未提供托管运行时系统的语言或语言版本(例如 Node.js 19)构建自己的运行时系统。有关更多信息,请参阅 构建 AWS Lambda 的自定义运行时系统。对于仅限操作系统的运行时系统,该用例最不常见。
Lambda 支持以下仅限操作系统的运行时系统:
名称 | 标识符 | 操作系统 | 弃用日期 | 阻止函数创建 | 阻止函数更新 |
---|---|---|---|---|---|
仅限操作系统的运行时系统 |
|
Amazon Linux 2023 |
未计划 |
未计划 |
未计划 |
仅限操作系统的运行时系统 |
|
Amazon Linux 2 |
未计划 |
未计划 |
未计划 |
与 Amazon Linux 2 相比,Amazon Linux 2023 (provided.al2023
) 运行时系统具有多项优势,包括较小的部署占用空间和 glibc
等更新版本的库。
provided.al2023
运行时系统使用 dnf
而不是 yum
作为程序包管理器,后者是 Amazon Linux 2 中的默认程序包管理器。有关 provided.al2023
和 provided.al2
之间区别的更多信息,请参阅 AWS 计算博客上的 AWS Lambda 的 Amazon Linux 2023 运行时系统简介