如何编程重启Azure App Service实例及配置健康检查自动重启通知
Azure App Service 实例异常排查与自动化处理方案
一、健康检查自动重启+通知配置
Azure App Service自带健康检查功能,完全覆盖你需要的实例无响应自动重启+管理员通知需求:
- 配置方式:在App Service门户面板找到「健康检查」选项,设置应用内的健康探测端点(比如
/health,需返回200状态码判定为健康),开启「不健康实例自动重启」开关即可。 - 通知设置:搭配Azure Monitor警报规则,针对「App Service实例不健康」指标创建警报,选择邮件通知渠道,就能把具体异常实例的信息发送给管理员,无需手动逐个排查。
二、实例重启相关操作逻辑
- 无需手动停止异常实例:开启健康检查自动重启后,Azure会自动将不健康实例从流量池中隔离,然后重启该实例;若重启后仍不健康,会重复尝试几次,持续失败时会根据你的横向扩展配置处理(比如弹性缩放规则)。
- 自动生成新实例的场景:仅当App Service配置了弹性横向扩展(基于CPU、内存或自定义指标),且当前实例数低于设置的最大实例数时,Azure才会自动新增实例。如果是固定10个实例的配置,异常实例重启后仍是原实例,不会新增。
三、编程方式重启App Service实例
可通过Azure CLI、PowerShell或SDK实现,以下是常用方式:
1. Azure CLI命令
# 重启整个App Service az webapp restart --name <你的App Service名称> --resource-group <资源组名称> # 重启单个指定实例 az webapp restart --name <你的App Service名称> --resource-group <资源组名称> --instance <实例ID>
2. PowerShell命令
# 重启整个App Service Rest-AzWebApp -ResourceGroupName <资源组名称> -Name <你的App Service名称> # 重启单个指定实例 Rest-AzWebApp -ResourceGroupName <资源组名称> -Name <你的App Service名称> -Instance <实例ID>
3. Python SDK示例
from azure.identity import DefaultAzureCredential from azure.mgmt.web import WebSiteManagementClient credential = DefaultAzureCredential() subscription_id = "<你的订阅ID>" web_client = WebSiteManagementClient(credential, subscription_id) # 重启整个App Service web_client.web_apps.restart("<资源组名称>", "<你的App Service名称>") # 重启单个指定实例 web_client.web_apps.restart("<资源组名称>", "<你的App Service名称>", instance_id="<实例ID>")
内容的提问来源于stack exchange,提问作者Traci
相关产品推荐
相关产品推荐

