ras*_*had 4 azure node.js serverless-framework azure-functions
目前我有Azure函数和6.5.0默认定义的Node.js版本.目标是升级它.我已经检查了Azure上可用的Node.js版本列表,最新的版本是8.9.4.我已经阅读了一些关于它的文档,其中提到了两种方法.
1)package.json
将以下配置放入package.json文件
"engines": {
"node": "8.9.4"
}
Run Code Online (Sandbox Code Playgroud)
所以我做到了,但没有成功.
2)应用程序设置
转到应用程序设置,更新的价值WEBSITE_NODE_DEFAULT_VERSION要8.9.4
这里我有3个问题:
process.version功能告诉我6.11.0.我不知道为什么... 8.9.4,但有些ES6功能async arrow functions会抛出错误 serverless deploy命令它重新创建服务并将WEBSITE_NODE_DEFAULT_VERSION值重置为默认值,即6.5.0Azure功能的另一个问题:当我部署带有更改的功能时,Azure门户网站UI仍然显示我没有更新功能(旧版本),而该功能的新版本正在那里运行.奇怪的...
如果您有任何人遇到这些问题,请告诉我,也许有人知道原因甚至是解决方案.谢谢.
记录process.version函数显示6.11.0.
正如@David所说,Azure Functions运行时v1(~1)将您的节点版本锁定为v6.11.
当改变WEBSITE_NODE_DEFAULT_VERSION到8.9.4,你还需要运行时版本更改FUNCTIONS_EXTENSION_VERSION到beta你的应用程序设置.
(请注意,运行时切换可能会导致重大更改,如果发生错误,您可以创建新的功能应用程序.)
第一种使用方法package.json在我的测试中不起作用.
某些ES6功能(如异步箭头功能)会引发错误
成功更新节点版本后,async arrow functions在我的测试中也能正常工作.
每次运行无服务器部署命令时,它都会重新创建服务并将WEBSITE_NODE_DEFAULT_VERSION值重置为默认值
serverless deploy是部署整个服务的命令.因此,在yml文件中没有节点版本的参数时,会发现重新创建(返回到默认值v6.5)是正常的.
为避免这种情况,请使用serverless deploy -f <functionname>部署特定功能而不是整个应用程序.
当我部署带有更改的功能时,Azure门户网站ui仍然显示我没有更新功能(旧版本),而该功能的新版本在那里运行
同样的事情发生在我身边.我发现脚本可以在App Service Editor中正确显示.但在portal和kudu中,更新无法显示.我还检查了kudu中的日志文件Script for function 'functionname' changed. Reloading..
已经打开了一个问题,关于我们见面的最后一个问题github上.
| 归档时间: |
|
| 查看次数: |
3490 次 |
| 最近记录: |