【问题标题】:Lambda Function NodeJS version always reverted to 12.xLambda 函数 NodeJS 版本始终恢复到 12.x
【发布时间】:2021-07-26 19:51:47
【问题描述】:

我正在运行需要 NodeJS 版本 14.x 的 javascript Lambda 函数。我可以在此处的 AWS Lambda 控制台中手动设置它(下面的屏幕截图),但每次我使用 amplify CLI 推送函数的更改时,它都会恢复到 12.x。我在本地放大文件中或在线找不到对 NodeJS 版本的任何引用。有没有办法让它每次都不会恢复?

这是 Lambda 控制台选项的样子,我不断将其编辑为 14.x,但它又变回了 12.x:

【问题讨论】:

    标签: node.js amazon-web-services aws-lambda aws-amplify


    【解决方案1】:

    目前(2021 年 7 月 26 日),AWS Amplify 仅支持 NodeJS 版本 12.x。请参阅 Amplify Docs 中的 Supported Lambda runtimes 段落以供参考。

    【讨论】:

    • 这很有趣,因为我的本地 CLI NodeJS 版本是 14.x,而我的 amplify mock function 调用在我的 14.x 代码中正常工作。另外,当我在 Lambda 控制台中编辑 NodeJS 版本时,它直接告诉我使用最新的 14.x:screenshot,但我知道这可能只是 CLI 和控制台之间的区别。谢谢回复。我猜这是有道理的..
    【解决方案2】:

    虽然@matsev 的回答看起来是 AWS 支持的官方版本,但我注意到虽然我的一些功能继续恢复到 12.x,但其他功能即使在推送后也保持在 14.x。留在 14.x 的那些是我最近创建的函数。

    原来,你可以编辑每个函数的*.cloudformation-template.json来设置nodejs版本!由于之前的开发人员使用files.exclude 隐藏了该文件,因此该文件没有出现在我的 vscode 搜索中。这可能是一个很好的最佳实践,因为该文件只需要使用 amplify CLI 进行编辑,但显然有些设置不是 CLI 命令的一部分。另一个例子是这里的超时参数。

    文件位于:amplify/backend/function/FUNCTION_NAME/FUNCTION_NAME-cloudformation-template.json 要编辑的参数是:`Resources.LambdaFunction.Properties.Runtime = "nodejs14.x"

    【讨论】:

      猜你喜欢
      • 2020-06-08
      • 2019-09-27
      • 2019-11-19
      • 1970-01-01
      • 1970-01-01
      • 2014-03-31
      • 2020-06-08
      • 2020-09-19
      • 2020-10-24
      相关资源
      最近更新 更多