【发布时间】:2018-09-20 17:15:20
【问题描述】:
目前我在此处默认定义了 Azure 函数和 Node.js 版本 6.5.0。目标是升级它。我查看了 Azure 上可用的 Node.js 版本列表,最新的是 8.9.4。我读过一些关于它的documentation,其中提到了两种方法。
1) package.json
将如下配置放到package.json文件中
"engines": {
"node": "8.9.4"
}
所以我做到了,但没有成功。
2) 应用程序设置
转到应用程序设置,并将WEBSITE_NODE_DEFAULT_VERSION 的值更新为8.9.4
这个方法有 3 个问题:
- 在函数中记录
process.version显示6.11.0。我不知道为什么...... - 实际上那里是 Node.js
8.9.4,但是像async arrow functions这样的一些 ES6 特性会抛出错误 - 每次我运行
serverless deploy命令时,它都会重新创建服务并将WEBSITE_NODE_DEFAULT_VERSION值重置为默认值,即6.5.0
Azure Functions 的另一个问题:当我部署具有更改的函数时,Azure Portal Web UI 仍然显示未更新的函数(旧的),而该函数的新版本正在那里运行。奇怪...
如果你们中的任何人遇到这些问题,请告诉我,也许有人知道原因甚至解决方案。谢谢。
【问题讨论】:
-
嗯。那么,您是将 Azure Functions 部署为应用服务计划的一部分,还是按需部署?我怀疑您尝试的解决方案仅适用于前者(我没有部署按需功能,所以我不太确定)。
-
它是应用服务计划的一部分,也不知道按需功能。无论如何,我需要让当前的事情正常工作:)
-
This doc 指出 Azure Functions 运行时 v1.x 已锁定在节点 v6.11,您需要使用 Azure Functions 运行时 v2.x 来获取更高版本。您知道您使用的是哪个版本的 Functions 运行时吗?也许这就是问题所在?
-
哦,我一直在看这个文档,但不知何故错过了。
-
不用担心 - 希望它有所帮助。我在一个答案中正式发表了我的评论,只是为了完整性(更详细一点)。
标签: node.js azure azure-functions serverless-framework