Lambda 运行时 - AWS Lambda

Lambda 运行时

Lambda 通过使用运行时支持多种语言。运行时系统提供特定于语言的环境,用于在 Lambda 与函数之间中继调用事件、上下文信息和响应。您可以使用 Lambda 提供的运行时,或构建您自己的运行时。

每个主要编程语言版本都有单独的运行时,并具有唯一的运行时标识符,例如 python3.10nodejs18.x。要将某个函数配置为使用新的主要语言版本,您需要更改运行时系统标识符。由于 AWS Lambda 无法保证主要版本之间的向后兼容性,因此该操作应由客户发起。

对于定义为容器映像的函数,您可以在创建容器映像时选择运行时系统和 Linux 发行版。要更改运行时,您需要创建一个新的容器映像。

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

Amazon Linux 2
  • 映像 – 自定义

  • Linux 内核 – 4.14

Amazon Linux

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

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

注意

对于新区域,Lambda 将不支持设置为在未来六个月内弃用的运行时。

支持的运行时
名称 标识符 SDK 操作系统 架构 弃用(阶段 1)

Node.js 18

nodejs18.x

3.188.0

Amazon Linux 2

x86_64,arm64

Node.js 16

nodejs16.x

2.1374.0

Amazon Linux 2

x86_64,arm64

2024 年 3 月 11 日

Node.js 14

nodejs14.x

2.1374.0

Amazon Linux 2

x86_64,arm64

2023 年 11 月 27 日

Python 3.11

python3.11

boto3-1.27.1 botocore-1.30.1

Amazon Linux 2

x86_64,arm64

Python 3.10

python3.10

boto3-1.26.90 botocore-1.29.90

Amazon Linux 2

x86_64,arm64

Python 3.9

python3.9

boto3-1.26.90 botocore-1.29.90

Amazon Linux 2

x86_64,arm64

Python 3.8

python3.8

boto3-1.26.90 botocore-1.29.90

Amazon Linux 2

x86_64,arm64

Python 3.7

python3.7

boto3-1.26.90 botocore-1.29.90

Amazon Linux

x86_64

2023 年 11 月 27 日

Java 17

java17

Amazon Linux 2

x86_64,arm64

Java 11

java11

Amazon Linux 2

x86_64,arm64

Java 8

java8.al2

Amazon Linux 2

x86_64,arm64

Java 8

java8

Amazon Linux

x86_64

2023 年 12 月 31 日

.NET 7(仅限容器)

dotnet7

Amazon Linux 2

x86_64,arm64

2024 年 5 月 14 日

.NET 6

dotnet6

Amazon Linux 2

x86_64,arm64

Go 1.x

go1.x

Amazon Linux

x86_64

2023 年 12 月 31 日

Ruby 3.2

ruby3.2

3.1.0

Amazon Linux 2

x86_64,arm64

Ruby 2.7

ruby2.7

3.1.0

Amazon Linux 2

x86_64,arm64

2023 年 12 月 7 日

自定义运行时

provided.al2

Amazon Linux 2

x86_64,arm64

自定义运行时

provided

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 会通过电子邮件通知您。

语言和框架支持政策
主题