You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Function部署无报错但门户中函数缺失求助

解决Azure Functions v4(Node18/TypeScript)部署后门户不显示函数的问题

核心排查:TypeScript编译与部署输出

Azure Functions运行时仅识别编译后的JavaScript文件,而非原始.ts文件,这是此类问题的核心诱因,按以下步骤验证:

  • 检查tsconfig.json的outDir配置(通常为./dist),确认本地执行npm run build后,该目录生成了完整的编译产物(JS文件+对应function.json)
  • 核对函数目录下的function.json,确保scriptFile路径指向编译后的JS文件(如../dist/functions/hello/index.js),而非.ts源文件

部署配置修正

1. 调整VSC扩展部署规则

在项目的.vscode/settings.json中添加以下配置,确保部署的是编译后产物而非源码:

{
  "azureFunctions.deploySubpath": "./dist",
  "azureFunctions.preDeployTask": "npm run build"
}

或在VSC部署弹窗中勾选部署前执行构建命令,强制先编译再部署。

2. 修正Azure门户应用设置

针对Windows环境(SCM_DO_BUILD_DURING_DEPLOYMENT为Linux专属,需移除),调整以下配置:

  • 设置WEBSITE_NODE_DEFAULT_VERSION = 18.x,与本地Node版本匹配
  • 添加FUNCTIONS_WORKER_RUNTIME_VERSION = ~4,明确指定v4运行时
  • 保留WEBSITE_RUN_FROM_PACKAGE = 0,禁用包运行模式

3. 验证KUDU部署内容

进入KUDU的wwwroot目录,确认:

  • dist目录存在,且包含所有编译后的JS文件和function.json
  • 根目录host.json配置正确,无自定义路径冲突

强制同步函数元数据

若配置无误仍无函数显示,手动触发同步:

  1. 打开函数应用的高级工具(KUDU),进入调试控制台
  2. 执行对应命令:
# Windows环境
func extensions install
func sync
# 若为Linux应用
az functionapp function sync --name <函数应用名> --resource-group <资源组名>

排查详细日志

开启 verbose 日志定位深层问题:

  1. 在配置>应用设置中添加:
    • FUNCTIONS_LOG_LEVEL = Verbose
    • WEBSITE_ENABLE_SYNC_UPDATE_SITE = true
  2. 重新部署后,查看监测>日志流,查找函数加载失败的具体报错(如路径错误、依赖缺失)

内容的提问来源于stack exchange,提问作者t0wt13m5

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 10:31:02