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

Azure App Service上Node.js/TS API启动后频繁终止求助

排查Azure App Service Node.js/Express API启动终止问题

1. 深挖Azure启动日志细节

  • 登录Azure门户进入目标App Service,打开日志流(Log Stream),实时抓取启动阶段的错误输出,重点排查uncaught exception、module not found、环境变量缺失这类核心报错
  • 下载/home/LogFiles/目录下的nodejs.log或application.log完整日志,搜索Error、Crash、Exit code关键词,比如退出码1对应未处理异常、137对应内存不足

2. 验证依赖安装完整性

  • 检查GitHub Action部署脚本,确认是否包含npm ci或npm install步骤,若使用--production参数,需确保生产环境无需的dev依赖未被错误移除
  • 通过Kudu控制台进入Azure服务器的/home/site/wwwroot/node_modules目录,对比本地node_modules,排查是否有缺失的依赖包,尤其是新增依赖是否在package.json中正确声明

3. 核对环境变量配置

  • 逐一对比Azure门户配置>应用程序设置中的环境变量与本地测试用的变量,确保数据库连接字符串、API密钥等关键值完全匹配,避免本地依赖.env文件但Azure未配置的情况
  • 检查代码中是否存在未定义的环境变量引用,比如process.env.MY_VAR未在Azure配置中声明

4. 确认端口配置正确性

  • 确保Express代码通过process.env.PORT || 3000方式获取端口,禁止硬编码固定端口(Azure会通过PORT环境变量分配端口)
  • 检查GitHub Action或启动脚本中是否存在强制指定端口的命令

5. 排查TypeScript编译问题

  • 确认GitHub Action中包含完整的tsc编译步骤,确保dist目录正确生成并部署到Azure
  • 查看Azure服务器上/home/site/wwwroot/dist目录是否存在,且包含所有编译后的JS文件,排查是否存在本地未触发的类型错误导致编译失败

6. 检查资源限制与内存占用

  • 若使用免费/共享定价层,临时升级到基础层测试是否因内存不足被终止,日志中搜索Out of memory关键词确认是否为内存溢出问题
  • 在启动代码中加入console.log(process.memoryUsage()),打印启动时的内存使用情况辅助排查

7. 验证启动命令有效性

  • 检查Azure配置>常规设置>启动命令是否正确,比如是否为node dist/server.js,确保路径与编译后的入口文件一致
  • 本地在编译后的dist目录下执行相同启动命令,验证是否能正常运行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 05:40:59