繁体   English   中英

将 Lambda function 更新为新的运行时

[英]Updating Lambda function to a new runtime

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

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

更新 Lambda Function 是否会更新 Lambda 应用程序运行时,因为 Lambda 应用程序只是 Lambda function 和资源?

任何帮助表示赞赏

Python 确保版本之间完美的追溯兼容性。

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

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

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

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

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

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

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

aws --region REGION lambda list-functions \
  --query 'Functions[?Runtime == `python3.6`].FunctionName'

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

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

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

aws --region REGION lambda update-function-configuration \
  --function-name "FUNCTION-NAME" --runtime 'python3.8'

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

如果您通过 CloudFormation 或 CDK 部署 lambda,则根本不需要这样做。 您更新您的 CloudFormation 或您的 CDK,然后创建一个 ChangeSet,然后部署 ChangeSet。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM