Lambda 运行时
Lambda 通过使用运行时支持多种语言。运行时系统提供特定于语言的环境,用于在 Lambda 与函数之间中继调用事件、上下文信息和响应。您可以使用 Lambda 提供的运行时,或构建您自己的运行时。
每个主要编程语言版本都有单独的运行时,并具有唯一的运行时标识符,例如 python3.10
或 nodejs18.x
。要将某个函数配置为使用新的主要语言版本,您需要更改运行时系统标识符。由于 AWS Lambda 无法保证主要版本之间的向后兼容性,因此该操作应由客户发起。
对于定义为容器映像的函数,您可以在创建容器映像时选择运行时系统和 Linux 发行版。要更改运行时,您需要创建一个新的容器映像。
要将 .zip 文件存档作为部署程序包,您需要在创建函数时选择运行时。要更改运行时,您可以更新函数的配置。运行时与其中一个 Amazon Linux 发行版配对。底层执行环境提供了您可通过函数代码访问的额外的库和环境变量。
Amazon Linux 2
-
映像 – 自定义
-
Linux 内核 – 4.14
Amazon Linux
-
Linux 内核 – 4.14
Lambda 调用执行环境中的函数。执行环境提供管理运行函数所需的运行时和其他资源的安全、隔离的运行时环境。Lambda 会重新使用上一个调用的执行环境(如果可用),其也可以创建新的执行环境。
要在 Lambda 中使用其他语言,您可以实施自定义运行时。Lambda 执行环境提供运行时接口来获取调用事件并发送响应。您可以将自定义运行时与函数代码一起部署,也可以在层中部署它。
注意
对于新区域,Lambda 将不支持设置为在未来六个月内弃用的运行时。
支持的运行时 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
名称 | 标识符 | SDK | 操作系统 | 架构 | 弃用(阶段 1) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Node.js 18 |
|
3.188.0 |
Amazon Linux 2 |
x86_64,arm64 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Node.js 16 |
|
2.1374.0 |
Amazon Linux 2 |
x86_64,arm64 |
2024 年 3 月 11 日 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Node.js 14 |
|
2.1374.0 |
Amazon Linux 2 |
x86_64,arm64 |
2023 年 11 月 27 日 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Python 3.11 |
|
boto3-1.27.1 botocore-1.30.1 |
Amazon Linux 2 |
x86_64,arm64 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Python 3.10 |
|
boto3-1.26.90 botocore-1.29.90 |
Amazon Linux 2 |
x86_64,arm64 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Python 3.9 |
|
boto3-1.26.90 botocore-1.29.90 |
Amazon Linux 2 |
x86_64,arm64 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Python 3.8 |
|
boto3-1.26.90 botocore-1.29.90 |
Amazon Linux 2 |
x86_64,arm64 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Python 3.7 |
|
boto3-1.26.90 botocore-1.29.90 |
Amazon Linux |
x86_64 |
2023 年 11 月 27 日 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Java 17 |
|
Amazon Linux 2 |
x86_64,arm64 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Java 11 |
|
Amazon Linux 2 |
x86_64,arm64 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Java 8 |
|
Amazon Linux 2 |
x86_64,arm64 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Java 8 |
|
Amazon Linux |
x86_64 |
2023 年 12 月 31 日 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
.NET 7(仅限容器) |
|
Amazon Linux 2 |
x86_64,arm64 |
2024 年 5 月 14 日 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
.NET 6 |
|
Amazon Linux 2 |
x86_64,arm64 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Go 1.x |
|
Amazon Linux |
x86_64 |
2023 年 12 月 31 日 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Ruby 3.2 |
|
3.1.0 |
Amazon Linux 2 |
x86_64,arm64 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Ruby 2.7 |
|
3.1.0 |
Amazon Linux 2 |
x86_64,arm64 |
2023 年 12 月 7 日 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
自定义运行时 |
|
Amazon Linux 2 |
x86_64,arm64 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
自定义运行时 |
|
Amazon Linux |
x86_64 |
2023 年 12 月 31 日 |
Lambda 通过补丁和对次要版本发布的支持使托管运行时保持最新。有关更多信息,请参阅 Lambda 运行时更新。
运行时弃用策略
适用于 .zip 文件存档的 Lambda 运行时 是围绕不断进行维护和安全更新的操作系统、编程语言和软件库的组合构建的。如果安全更新不可用于运行时的组件,Lambda 会弃用该运行时。
运行时的弃用(支持终止)分两个阶段进行。
第 1 阶段 - Lambda 不再对运行时应用安全补丁程序或其他更新。您无法再创建使用该运行时的函数,但可以继续更新现有的函数。这包括更新运行时和回滚到以前的运行时。请注意,使用已弃用的运行时的函数不再符合获得技术支持的条件。
第 2 阶段 - 您无法再创建或更新使用运行时的函数。要更新函数,您需要将其迁移到受支持的运行时。将函数迁移到受支持的运行时后,无法将函数回滚到之前的运行时。第 2 阶段在第 1 阶段开启后至少 30 天开启。
Lambda 不会阻止使用已弃用的运行时的函数调用。在运行时到达支持终止后,函数调用将无限期继续。但是,AWS 强烈建议您将函数迁移到受支持的运行时,以便继续接收安全补丁程序并保持获得技术支持的资格。
在下表中,每个阶段从指定日期的午夜(太平洋时区)开启。已经终止对下列运行时的支持:
已弃用的运行时 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
名称 | 标识符 | 操作系统 | 弃用第 1 阶段 | 弃用第 2 阶段 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
.NET Core 3.1 |
dotnetcore3.1
|
Amazon Linux 2 |
2023 年 4 月 3 日 |
2023 年 5 月 3 日 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Node.js 12 |
nodejs12.x
|
Amazon Linux 2 |
2023 年 3 月 31 日 |
2023 年 4 月 30 日 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Python 3.6 |
python3.6
|
Amazon Linux |
2022 年 7 月 18 日 |
2022 年 8 月 29 日 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Python 2.7 |
python2.7
|
Amazon Linux |
2021 年 7 月 15 日 |
2022 年 5 月 30 日 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
.NET 5(仅限容器) |
dotnet5.0
|
Amazon Linux 2 |
2022 年 5 月 10 日 |
2022 年 5 月 10 日 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
.NET Core 2.1 |
dotnetcore2.1
|
Amazon Linux |
2022 年 1 月 5 日 |
2022 年 4 月 13 日 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Ruby 2.5 |
ruby2.5
|
Amazon Linux |
2021 年 7 月 30 日 |
2022 年 3 月 31 日 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Node.js 10 |
nodejs10.x
|
Amazon Linux 2 |
2021 年 7 月 30 日 |
2022 年 2 月 14 日 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Node.js 8.10 |
nodejs8.10
|
Amazon Linux |
2020 年 3 月 6 日 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Node.js 4.3 |
nodejs4.3
|
Amazon Linux |
2020 年 3 月 5 日 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Node.js 6.10 |
nodejs6.10
|
Amazon Linux |
2019 年 8 月 12 日 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
.NET Core 1.0 |
dotnetcore1.0
|
Amazon Linux |
2019 年 7 月 30 日 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
.NET Core 2.0 |
dotnetcore2.0
|
Amazon Linux |
2019 年 5 月 30 日 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Node.js 4.3 边缘 |
nodejs4.3-edge
|
Amazon Linux |
2019 年 4 月 30 日 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Node.js 0.10 |
nodejs
|
Amazon Linux |
2016 年 10 月 31 日 |
在大多数情况下,语言版本或操作系统的使用结束期限预先可知。以下链接提供了 Lambda 支持作为托管式运行时使用的每种语言的终止使用计划。此外,Trusted Advisor 还提供了一项检查,此项检查会提前 120 天通知您 Lambda 运行时即将终止支持,如果您的函数使用的运行时预计会在未来 60 天内终止支持,Lambda 会通过电子邮件通知您。
语言和框架支持政策
-
Node.js – github.com
-
Python – devguide.python.org
-
Ruby – www.ruby-lang.org
-
Java – www.oracle.com
和 Corretto 常见问题 -
Go – golang.org
-
.NET Core – dotnet.microsoft.com