Lambda 运行时 - AWS Lambda

Lambda 运行时

Lambda 通过使用运行时支持多种语言。对于定义为容器镜像的函数,您可以在创建容器镜像时选择运行时和 Linux 发行版。要更改运行时,您需要创建一个新的容器镜像。

要将 .zip 文件存档作为部署程序包,您需要在创建函数时选择运行时。要更改或升级运行时,您可以更新函数的配置。运行时与其中一个 Amazon Linux 发行版配对。底层执行环境提供了您可通过函数代码访问的额外的库和环境变量

Amazon Linux

Amazon Linux 2

  • 镜像 – 自定义

  • Linux 内核 – 4.14

Lambda 调用执行环境中的函数。执行环境提供管理运行函数所需的运行时和其他资源的安全、隔离的运行时环境。Lambda 会重新使用上一个调用的执行环境(如果可用),其也可以创建新的执行环境。

运行时可以支持一种语言的单个版本、一种语言的多个版本或多种语言。特定于语言或框架版本的运行时会在版本的使用寿命结束时被弃用

Node.js 运行时
名称 标识符 适用于 JavaScript 的软件开发工具包 操作系统 架构

Node.js 16

nodejs16.x

2.1055.0

Amazon Linux 2

x86_64,arm64

Node.js 14

nodejs14.x

2.1055.0

Amazon Linux 2

x86_64,arm64

Node.js 12

nodejs12.x

2.1055.0

Amazon Linux 2

x86_64,arm64

注意

有关 Node.js 12 的终止支持信息,请参阅 运行时弃用策略

Python 运行时
名称 标识符 AWS Python的软件工具包 操作系统 架构

Python 3.9

python3.9

boto3-1.20.32 botocore-1.23.32

Amazon Linux 2

x86_64,arm64

Python 3.8

python3.8

boto3-1.20.32 botocore-1.23.32

Amazon Linux 2

x86_64,arm64

Python 3.7

python3.7

boto3-1.20.32 botocore-1.23.32

Amazon Linux

x86_64

Ruby 运行时
名称 标识符 SDK for Ruby 操作系统 架构

Ruby 2.7

ruby2.7

3.0.1

Amazon Linux 2

x86_64,arm64

注意

有关 Ruby 2.5 的终止支持信息,请参阅 运行时弃用策略

Java 运行时
名称 标识符 JDK 操作系统 架构

Java 11

java11

amazon-corretto-11

Amazon Linux 2

x86_64,arm64

Java 8

java8.al2

amazon-corretto-8

Amazon Linux 2

x86_64,arm64

Java 8

java8

amazon-corretto-8

Amazon Linux

x86_64

Go 运行时
名称 标识符 操作系统 架构

Go 1.x

go1.x

Amazon Linux

x86_64

注意

使用 Amazon Linux 操作系统(例如 Go 1.x)的运行时不支持 arm64 架构。要使用 arm64 架构,您可以运行带 provided.al2 运行时的 Go。

.NET 运行时
名称 标识符 操作系统 架构

.NET 6

dotnet6

Amazon Linux 2

x86_64,arm64

.NET Core 3.1

dotnetcore3.1

Amazon Linux 2

x86_64,arm64

注意

有关 .NET Core 3.1 的终止支持信息,请参阅 运行时弃用策略

要在 Lambda 中使用其他语言,您可以实施自定义运行时。Lambda 执行环境提供运行时接口来获取调用事件并发送响应。您可以将自定义运行时与函数代码一起部署,也可以在中部署它。

自定义运行时
名称 标识符 操作系统 架构

自定义运行时

provided.al2

Amazon Linux 2

x86_64,arm64

自定义运行时

provided

Amazon Linux

x86_64

运行时弃用策略

Lambda 运行时适用于 .zip 文件存档的 是围绕不断进行维护和安全更新的操作系统、编程语言和软件库的组合构建的。如果安全更新不可用于运行时的组件,Lambda 会弃用该运行时。

运行时的弃用(支持终止)分两个阶段进行。

第 1 阶段 - Lambda 不再对运行时应用安全补丁程序或其他更新。您无法再创建使用该运行时的函数,但可以继续更新现有的函数。这包括更新运行时版本和回滚到以前的运行时版本。请注意,使用已弃用的运行时的函数不再符合获得技术支持的条件。

第 2 阶段 - 您无法再创建或更新使用运行时的函数。要更新函数,您需要将其迁移到受支持的运行时版本。将函数迁移到受支持的运行时版本后,无法将函数回滚到之前的运行时。第 2 阶段在第 1 阶段开启后至少 30 天开启。

Lambda 不会阻止使用已弃用的运行时版本的函数调用。在运行时版本到达支持终止后,函数调用将无限期继续。但是,AWS 强烈建议您将函数迁移到受支持的运行时版本,以便继续接收安全补丁程序并保持获得技术支持的资格。

在下表中,每个阶段从指定日期的午夜(太平洋时区)开启。下列运行时已经或计划终止支持:

运行时支持终止日期
名称 标识符 操作系统 弃用第 1 阶段 弃用第 2 阶段

.NET Core 3.1

dotnetcore3.1

Amazon Linux 2

2023 年 1 月 20 日

2023 年 2 月 20 日

Node.js 12

nodejs12.x

Amazon Linux 2

2022 年 11 月 14 日

2022 年 12 月 14 日

.NET Core 2.1

dotnetcore2.1

Amazon Linux

2022 年 1 月 5 日

2022 年 4 月 13 日

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 日

Ruby 2.5

ruby2.5

Amazon Linux

2021 年 7 月 30 日

2022 年 3 月 31 日

Node.js 10.x

nodejs10.x

Amazon Linux 2

2021 年 7 月 30 日

2022 年 2 月 14 日

Node.js 8.10

nodejs8.10

Amazon Linux

2020 年 3 月 6 日

Node.js 6.10

nodejs6.10

Amazon Linux

2019 年 8 月 12 日

Node.js 4.3 边缘

nodejs4.3-edge

Amazon Linux

2019 年 4 月 30 日

Node.js 4.3

nodejs4.3

Amazon Linux

2020 年 3 月 6 日

Node.js 0.10

nodejs

Amazon Linux

2016 年 10 月 31 日

.NET Core 2.0

dotnetcore2.0

Amazon Linux

2019 年 5 月 30 日

.NET Core 1.0

dotnetcore1.0

Amazon Linux

2019 年 7 月 30 日

在大多数情况下,语言版本或操作系统的使用结束期限预先可知。如果您的函数使用预计在接下来 60 天内终止所支持的运行时,Lambda 会通过电子邮件通知您。在极少数情况下,可能无法提前通知支持终止。例如,需要向后不兼容的更新的安全问题,或运行时组件不提供长期支持 (LTS) 计划。

语言和框架支持政策