Azure App Service突发宕机,出现未知错误无法访问求助
故障根因定位
核心报错指向/home/site/wwwroot/BlazorApp.Server.deps.json文件读取/解析失败,该文件是ASP.NET Core应用的依赖清单文件,为应用启动时加载运行时、第三方依赖的必备文件,加载失败会直接导致服务进程启动崩溃,返回502错误。同时Kudu服务同样需要访问/home目录下的文件,因此也同步出现502错误。
对应解决思路
- 优先判断是否为Azure平台侧临时故障:Linux版App Service的/home目录是跨节点挂载的共享持久化存储,若对应区域的存储集群出现临时可用性抖动、存储卷挂载异常,就会出现文件无法读取的问题。这类故障属于平台侧自愈范畴,不需要人工操作即可在几小时内恢复,和你遇到的自动恢复现象完全吻合。
- 故障发生时可主动触发恢复的操作:
- 重新发布应用包:直接覆盖部署一次应用,可修复可能出现的本地文件损坏问题
- 调整实例规格:将App Service向上扩容一个层级再缩容回原规格,该操作会将应用调度到其他正常的宿主机节点,避开宿主机侧的挂载故障
- 配置备用部署槽:提前配置生产/预发两个槽位,出现故障时直接做槽位切换,可把停机时间压缩到秒级
- 长期规避方案:可以在自定义启动命令中增加文件校验逻辑,检测到核心文件缺失/损坏时自动触发部署包拉取,同时开启Azure App Service的告警规则,在服务返回5xx错误时第一时间收到通知。
关于和Facebook宕机的关联性说明
2021年10月4日的Facebook全球宕机是其自身BGP路由配置错误导致的DNS解析失效,和Azure北欧区域的内部基础设施故障没有关联,两次事件仅为时间上的巧合。
内容的提问来源于stack exchange,提问作者Alamakanambra
相关产品推荐
相关产品推荐

