【问题标题】: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】:
【讨论】:
-
这很有趣,因为我的本地 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"