如何防止Azure App Service健康检查部署后重置?或在管道中启用?
解决Azure App Service健康检查部署后被重置的问题
一、阻止健康检查设置被重置的方法
- 检查部署任务配置:如果用Azure DevOps发布管道,查看Azure App Service Deploy任务里的**"Remove additional files at destination"**选项,开启状态下会清空目标站点的额外文件,可能连带覆盖健康检查配置,建议关闭。同时确保部署包内的配置文件(比如web.config、appsettings.json)已正确包含健康检查相关设置。
- 用ARM模板/Bicep定义配置:如果通过基础设施代码部署App Service,直接在模板中固定健康检查配置,部署时就会保留该设置。比如ARM模板的站点资源可添加如下配置:
"resources": [ { "type": "Microsoft.Web/sites", "name": "[variables('appServiceName')]", "apiVersion": "2022-03-01", "properties": { "siteConfig": { "healthCheckPath": "/health", "healthCheckEnabled": true } } } ] - 排查“从包运行”模式:如果App Service开启了“从包运行”,要确认部署包内的配置文件包含健康检查的正确设置,避免部署时触发配置重置。
二、管道中主动激活健康检查的方法
如果无法阻止重置,可在部署管道末尾添加步骤主动启用健康检查:
- Azure DevOps使用Azure CLI任务:部署完成后执行命令:
az webapp config set --name <你的应用名称> --resource-group <你的资源组名称> --health-check-path "/health" --health-check-enabled true - 用PowerShell任务替代:若习惯用PowerShell,通过Azure PowerShell模块执行:
Set-AzWebApp -ResourceGroupName <你的资源组名称> -Name <你的应用名称> -HealthCheckPath "/health" -HealthCheckEnabled $true - GitHub Actions添加步骤:如果用GitHub Actions部署,部署后增加Azure CLI步骤:
- name: Enable Health Check uses: azure/cli@v1 with: inlineScript: az webapp config set --name ${{ secrets.AZURE_APP_NAME }} --resource-group ${{ secrets.AZURE_RESOURCE_GROUP }} --health-check-path "/health" --health-check-enabled true
内容的提问来源于stack exchange,提问作者user21996911
相关产品推荐
相关产品推荐

