我想详细了解 AWS Lambda 运行时版本以及它们与 Lambda 运行时的区别。此外,我想知道如何识别这些值以及它们如何影响我的 Lambda 函数。
简短描述
Lambda 函数在特定的运行时运行,例如 Python 3.12 或 Node.js 14.x。这些运行时由其所有者根据需要更新。Lambda 可确保每个托管运行时都使用所有当前的安全更新、错误修复、新功能、性能增强以及对次要版本发布的支持进行更新。然后,这些运行时更新将作为运行时版本发布。Lambda 还将这些运行时更新应用于使用早期运行时版本的 Lambda 函数,以便它们使用新的运行时版本。
解决方法
Lambda 运行时标识符与Lambda 运行时版本
Lambda 运行时标识符与 Lambda 运行时版本不同。运行时标识符代表编程语言的不同主要版本,例如 nodejs18.x、nodejs20.x、python3.11 或 python3.12。运行时版本是指函数启动环境的次要运行时和安全补丁。运行时版本描述单个运行时的补丁版本。有关详细信息,请参阅 AWS Lambda 运行时管理控制简介。
Lambda 运行时次要版本
Lambda 运行时次要版本与 Lambda 运行时版本不同。要查找运行时版本 ARN,请完成以下步骤:
- 打开 AWS Lambda 控制台。
- 选择您的函数的名称。
- 在 Runtime settings(运行时设置)部分中,选择 Runtime management configuration(运行时管理配置)。
-或-
在函数日志中查找 Runtime version ARN(运行时版本 ARN)。
每次 Lambda 为您的函数创建新的启动环境时,都会显示以下日志。
INIT_START Runtime Version: python:3.9.v14 Runtime Version ARN: arn:aws:lambda:eu-south-1::runtime:7b620fc2e66107a1046b140b9d320295811af3ad5d4c6a011fad1fa65127e9e6I
要查找基于 Node.js 的 Lambda 函数的运行时次要版本,请使用 process.version 记录该版本,如以下示例所示:
console.log('NODE_VERSION', process.version)
要查找基于 Python 的 Lambda 函数的运行时次要版本,请使用 sys.version 记录该版本,如以下示例所示。
import sys
print (sys.version)
Python 的输出示例:
3.12: 3.12.5 (main, Sep 9 2024, 14:55:57) [GCC 11.4.1 20230605 (Red Hat 11.4.1-2)]
相关信息
如何解决由运行时版本错误导致的 Lambda 函数故障?
运行时更新模式