如何通过Azure CLI单独重启Azure Web App各实例错开启动时间
Azure Web App 单实例定向重启操作指引
业务背景与已调研结论
- 实际业务场景:多实例部署的Azure Web App在相近时间集体启动时,会并行加载相同程序集,产生不必要的启动资源峰值
- 已验证的命令行为:
- 执行
az webapp restart默认会重启Web App下的全部实例,无法实现错峰启动的目标 - 通过
az webapp list-instances可正常拉取目标Web App下所有运行实例的标识列表
- 执行
- 核心需求:
- 确认Azure Web App是否支持单个实例的定向重启
- 落地对应的Azure CLI操作方案,实现逐实例间隔延迟重启的逻辑,对齐Azure门户「诊断并解决问题」边栏选项卡下「高级应用重启」的功能效果
能力确认结论
Azure Web App 原生支持单个运行实例的定向重启操作,操作粒度为单实例进程回收,不会影响同应用下的其他运行实例,完全可以满足错峰重启的设计目标。
具体Azure CLI操作步骤
- 获取目标Web App的全量运行实例列表
执行以下命令,拉取所有运行中实例的唯一instanceId,作为后续单实例操作的定位标识:az webapp list-instances --name <你的WebApp名称> --resource-group <所在资源组名称> - 针对指定单个实例执行重启
执行以下命令,传入目标实例的instanceId即可触发定向重启,不会波及其他实例:
补充说明:如果需要一次性定向重启多个分散实例,可在az webapp restart --name <你的WebApp名称> --resource-group <所在资源组名称> --instance ids <目标实例的instanceId>--instance ids参数后传入多个空格分隔的instanceId值。
错峰逐实例重启实现逻辑
- 脚本设计思路:遍历拉取到的所有实例ID,逐个触发单实例重启,每完成一个实例的重启流程后,等待预设的延迟时长(延迟时长可根据程序集实际加载耗时调整,建议从30秒起步逐步调优),再发起下一个实例的重启操作,全程保证在线可用实例数满足业务冗余要求
- 注意事项:单实例重启属于进程级别的回收操作,和门户端「高级应用重启」的底层能力完全一致,不存在应用域全局回收、全实例中断的副作用
内容的提问来源于stack exchange,提问作者TheWebGuy
相关产品推荐
相关产品推荐

