如何在Azure Functions中升级Node.js版本至8.9.4
如何将Azure Functions的Node.js版本从6.5.0升级到8.9.4
我来帮你解决这个版本升级的问题——我之前处理过类似的场景,下面是两种经过验证的有效方案,尤其是第二种方法几乎不会出错:
方法1:通过package.json配置(需确保优先级正确)
如果你想用package.json的方式生效,先确认你的配置格式完全正确:
{ "name": "your-function-app", "version": "1.0.0", "engines": { "node": "8.9.4" }, // 其他依赖配置... }
不过要注意:如果你的Function App已经在应用设置里配置了WEBSITE_NODE_DEFAULT_VERSION,这个应用设置的优先级会高于package.json里的engines字段,所以如果之前没生效,大概率是这个原因。你可以先检查应用设置里有没有这个配置,要是有的话,要么删掉它,要么用方法2直接修改它。
方法2:通过应用程序设置(最可靠的全局生效方式)
这是我最推荐的方法,因为它是全局级别的配置,不会被部署文件覆盖,步骤很清晰:
- 登录Azure门户,找到你的目标Function App
- 进入左侧菜单的配置 > 应用程序设置页面
- 在“应用程序设置”列表里,找到(如果没有就点击“新建应用程序设置”添加)名为
WEBSITE_NODE_DEFAULT_VERSION的项,将它的值设置为8.9.4 - 点击页面顶部的“保存”按钮,然后重启你的Function App(必须重启,否则新配置不会加载)
验证版本是否生效
重启后,你可以通过Kudu控制台确认:
- 访问
https://<你的Function App名称>.scm.azurewebsites.net/DebugConsole - 在控制台里输入命令:
node -v,回车后应该会显示v8.9.4
为什么之前package.json的方法没生效?
大概率是这两个原因之一:
- 应用设置里已经存在
WEBSITE_NODE_DEFAULT_VERSION,它的优先级更高,覆盖了package.json的配置 - 部署时
package.json没有被正确上传到Azure,你可以在Kudu控制台的site/wwwroot目录下检查是否有最新的package.json文件
内容的提问来源于stack exchange,提问作者Rashad Ibrahimov
相关产品推荐
相关产品推荐

