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

如何配置Azure Web App实现部署新提交时不中断旧版本运行?

Azure Web App实现零停机部署的方案

你遇到的核心问题是部署时在Web App实例内进行编译,导致生产实例停机。可以通过以下几种方式实现你期望的后台编译、无缝切换的流程:

1. 使用部署槽位(Deployment Slots)

这是Azure Web App实现零停机部署的标准方案,完全匹配你的预期流程:

  • 创建一个staging(预发布)槽位,配置与生产槽位保持一致(可通过克隆生产槽配置快速创建)
  • 将新提交v2部署到staging槽位:此过程在独立实例中完成编译和部署,完全不影响生产槽运行的v1版本
  • 待staging槽的v2验证通过后,执行槽位交换操作:Azure会自动完成流量切换,瞬间将用户请求导向v2版本,且交换过程支持预热设置,避免冷启动问题

2. 移除外置编译流程

把代码编译过程从Web App实例内转移到外部(比如GitHub Actions),避免占用生产实例资源导致停机:

  • 在GitHub仓库中配置GitHub Actions工作流,在GitHub端完成代码编译、打包操作
  • 将编译好的成品(如zip包、Docker镜像)部署到Azure Web App:此部署过程仅需传输文件和启动应用,耗时极短,不会导致长时间离线
  • 该方案可与部署槽位结合,先将成品部署到staging槽验证,再交换到生产槽

3. 调整Web App部署配置

检查当前的部署方式,避免使用会导致实例停机的内置编译模式:

  • 关闭Web App的"内置构建"选项,改用Zip Deploy或容器部署等无需在实例内编译的部署方式
  • 开启Web App的Always On设置,确保应用实例不会因闲置回收影响可用性,但此设置主要解决冷启动问题,需配合前两种方案使用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 19:30:57