【问题标题】:Updating Lambda function to a new runtime将 Lambda 函数更新到新的运行时
【发布时间】:2022-09-29 05:02:16
【问题描述】:

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

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

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

任何帮助表示赞赏

    标签: python-3.x amazon-web-services aws-lambda runtime


    【解决方案1】:

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

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

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

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

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

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

    【讨论】:

      【解决方案2】:

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

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

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

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

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

      如果你超级自信并且只想优洛它,然后您可以运行此命令来更新函数的运行时。对于从先前命令中获得的每个函数名称,请执行以下操作:

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

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

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

      【讨论】:

        猜你喜欢
        • 2020-03-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多