Node.js Azure Function从Function Extensions 2.x升级3.x运行失败问题
解决Azure Function 2.x升3.x运行时不生效、启动失败问题
一、运行时版本固定为2.x的修复步骤
- 先检查本地安装的Azure Functions Core Tools版本,在终端执行
func --version,如果返回版本号为2.x.x,说明本地全局安装的工具就是旧版本,无论项目配置如何都会默认调用旧版运行时。直接卸载旧版工具,下载安装3.x版本的Azure Functions Core Tools即可。 - 确认双配置文件的版本配置都已修改:
local.settings.json的Values节点下添加"FUNCTIONS_EXTENSION_VERSION": "~3"- 根目录
host.json的顶层配置中添加"version": "3.0",不能只改local.settings.json的配置。
- 检查VS Code相关配置:打开VS Code设置搜索
azureFunctions.projectRuntime,确认选择的版本为~3;删除.vscode目录下的launch.json、tasks.json,避免旧启动参数硬编码指定2.x运行时。 - 排查环境变量冲突:如果系统全局环境变量中设置了
FUNCTIONS_EXTENSION_VERSION值为~2,会覆盖项目本地配置,删除该全局环境变量后重启终端即可。
二、升级后项目无法启动的适配步骤
- 调整Node.js版本:Azure Function 3.x仅支持Node.js 12、14、16三个LTS版本,不要使用低于12或高于16的Node版本,切换到对应版本后重新安装依赖。
- 更新项目依赖:删除
node_modules文件夹和package-lock.json/yarn.lock文件,检查package.json的devDependencies中如果有azure-functions-core-tools依赖,将其版本号修改为3.x最新版,再重新执行npm install。 - 清理运行缓存:删除项目根目录下的
.func隐藏缓存文件夹,执行func start --build重新启动项目。 - 检查废弃配置:删除
host.json中2.x版本的废弃配置,例如旧版绑定专属配置、超过消耗计划上限的functionTimeout配置等。
内容的提问来源于stack exchange,提问作者Scuba Steve
相关产品推荐
相关产品推荐

