将 Lambda 函数更新到新的运行时

Sha*_*ani 5 runtime amazon-web-services python-3.x aws-lambda

我有几个带有 Python 3.6 运行时的 Lambda 函数。这些 Lambda 函数属于其 Lambda 应用程序。

将运行时更新到 Python 3.8 或最新版本的最佳方法是什么?如何测试呢?所有 lambda 函数都与我们的持续部署流程相关。

更新 Lambda 函数是否会更新 Lambda 应用程序运行时,因为 Lambda 应用程序只是带有资源的 Lambda 函数?

任何帮助表示赞赏

小智 6

要在 AWS 控制台中执行此操作,请转到 Lambda 控制台,找到您的函数并单击其名称。(例如,eu-west-1 console)。向下滚动到页面底部并查找“运行时设置”。单击“编辑”,然后您可以从列表中的可用运行时中选择新的运行时。

或者,您可以使用命令行查找具有python3.6运行时的所有 Lambda 函数:

aws --region REGION lambda list-functions \
  --query 'Functions[?Runtime == `python3.6`].FunctionName'
Run Code Online (Sandbox Code Playgroud)

该命令将返回具有运行时的函数名称列表python3.6。

请注意,Lambda 是一项区域服务,因此您必须在部署了 Lambda 函数的每个区域中运行该命令行,并将 的值更改REGION为类似eu-west-1检查该区域中的函数的值。

如果您非常有信心并且只想YOLO它,则可以运行此命令来更新函数的运行时。对于从先前命令获得的每个函数名称,执行以下操作:

aws --region REGION lambda update-function-configuration \
  --function-name "FUNCTION-NAME" --runtime 'python3.8'
Run Code Online (Sandbox Code Playgroud)

您必须在 CLI 中输入您所在区域的值和函数名称的值。

如果您通过 CloudFormation 或 CDK 部署 lambda,则根本不需要执行此操作。您更新 CloudFormation 或 CDK,然后创建 ChangeSet,然后部署 ChangeSet。


Flo*_*loh 1

Python 确保版本之间完美的向后兼容。

\n

这并不意味着您不必进行测试,而是意味着您可以对升级过程充满信心。

\n

您应该首先查看要升级的版本的变更日志(因此,如果从 3.6 升级到 3.8,请查看3.7和3.8变更日志)。

\n

那你应该测试一下。如果有意义的话,可以在本地创建一个将调用处理程序的 main,或者通过放入 lambda 并在实际条件下进行测试。

\n

您将修改定义(无论它是什么,直接在 aws 控制台、SAM、无服务器框架、cloudformation 或其他任何地方)。

\n

如果出现问题,您应该恢复到 3.6 以使您的流程正常运行并单独进行调查。

\n