通过Serverless部署Azure Functions时Node.js 18版本配置异常求助
解决Node.js 18部署Azure Functions时FUNCTIONS_EXTENSION_VERSION自动设为~3的问题
问题原因
Node.js 18对应的Azure Functions运行时版本为4,但`serverless-azure-functions`插件部署Node.js18时,未自动关联正确的运行时版本,导致默认使用了3。
解决方案
在serverless.yml的provider区块中手动添加functionsExtensionVersion配置项,强制指定运行时版本为~4:
修改后的完整配置文件如下:
service: node-azure provider: name: azure region: East US stage: dev runtime: nodejs18 functionsExtensionVersion: ~4 # 新增该行指定正确运行时版本 plugins: - serverless-azure-functions package: exclude: - node_modules/** - .gitignore - package.json - .git/** functions: hello: handler: handler.hello events: - http: true x-azure-settings: authLevel: anonymous
验证步骤
- 重新执行部署命令:
serverless deploy - 登录Azure Portal,找到目标Function App
- 进入配置 > 应用程序设置,确认
FUNCTIONS_EXTENSION_VERSION已设为~4 - 同时检查运行时堆栈是否显示为
Node.js 18
额外注意事项
- 确保
serverless-azure-functions插件为最新版本,旧版本对Node.js18支持可能不完善,可执行npm update serverless-azure-functions更新 - 若更新插件后问题仍存在,尝试删除
.serverless目录和node_modules,重新安装依赖后再部署
内容的提问来源于stack exchange,提问作者ganyavhad
相关产品推荐
相关产品推荐

