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

如何重新部署Azure Web App ARM模板而不重置已部署应用

解决ARM模板部署重置Web App应用的问题

核心原因

Incremental模式下,若ARM模板中Microsoft.Web/sites资源未明确规避应用部署相关属性,Azure会默认重置部分站点配置(比如部署关联的设置、默认文档列表等),导致已发布的应用被覆盖为默认蓝屏页面。

具体修复方案

1. 精简ARM模板中Web App的配置范围

编辑Microsoft.Web/sites资源定义时,只保留基础设施级的配置项,剔除所有与应用部署、代码发布相关的属性:

  • 不要在siteConfig里定义WEBSITE_RUN_FROM_PACKAGE这类部署模式配置
  • 若已通过应用流水线设置过defaultDocuments、appSettings(非基础设施相关),不要在模板中重复定义
  • 运行时版本(如netFrameworkVersion)如果已和应用匹配,无需在模板中指定(除非你确实需要更新版本)

示例模板片段:

{
  "type": "Microsoft.Web/sites",
  "apiVersion": "2022-09-01",
  "name": "[parameters('webAppName')]",
  "location": "[parameters('location')]",
  "properties": {
    "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', parameters('appServicePlanName'))]",
    "siteConfig": {
      "alwaysOn": true,
      "http20Enabled": true
      // 仅保留基础设施类配置,移除部署相关内容
    }
  }
}

2. 明确划分流水线职责

严格区分两类流水线的作用边界:

  • 基础设施流水线:仅负责管理App Service Plan、Web App的基础属性(如区域、实例规模、网络绑定等),绝不触碰应用代码、部署包相关的任何配置
  • 应用部署流水线:专门处理代码构建、发布,以及应用专属配置(如业务相关的连接字符串、appSettings)

3. 提前验证部署变更

执行正式部署前,用Azure CLI预览变更内容,确认不会修改应用相关属性:

az deployment group validate --resource-group <你的资源组名> --template-file <模板路径> --parameters <参数文件路径>

4. 禁用SCM站点停止配置

确保模板中未设置scmSiteAlsoStopped: true,该配置会停止部署相关的SCM服务,导致应用重置。若必须定义,设为false或直接省略该属性。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 13:50:09