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

如何定时自动执行Azure App Service部署槽交换?

Azure App Service部署槽定时自动交换的实现方案

完全可以实现凌晨2-3点的定时自动交换需求,下面分两种常用方式说明:

一、通过Azure可视化界面配置(无需编写复杂脚本)

方式1:Azure Automation Runbook

  • 登录Azure门户,创建一个Automation账户,然后新建PowerShell类型的Runbook
  • 写入核心交换逻辑的脚本(需确保Automation账户已安装Az模块):
    # 用托管身份登录Azure
    Connect-AzAccount -Identity
    # 执行槽交换
    Set-AzWebAppSlot -ResourceGroupName "你的资源组名称" -Name "你的App Service名称" -SourceSlotName "Test" -DestinationSlotName "Production" -SwapWithPreviewAction Swap
    
  • 给这个Automation账户分配网站参与者角色,确保它拥有操作部署槽的权限
  • 在Runbook的触发器设置里,添加定时触发器,设置执行时间为凌晨2-3点(注意时区选UTC,或者根据本地时区调整),并设置每天重复执行

方式2:Azure DevOps定时发布管道

  • 打开你的Azure DevOps发布管道,添加一个Azure App Service部署槽交换任务
  • 配置任务参数:源槽选Test,目标槽选Production,按需勾选保留应用设置、连接字符串等选项
  • 切换到管道的触发器标签,添加计划触发器,设置执行时间为凌晨2-3点,频率设为每天
  • 如果需要先确认Test槽测试通过,可在交换任务前添加人工审批步骤,只有审批通过后,定时任务才会执行交换操作

二、脚本+系统定时任务(灵活自定义场景)

Windows环境(任务计划程序)

  • 编写PowerShell脚本(用服务主体身份验证,避免交互式登录):
    # 通过服务主体登录
    $servicePrincipal = Connect-AzAccount -ServicePrincipal -TenantId "你的租户ID" -ApplicationId "你的服务主体ID" -CertificateThumbprint "证书指纹"
    # 执行槽交换
    Set-AzWebAppSlot -ResourceGroupName "资源组名称" -Name "App Service名称" -SourceSlotName "Test" -DestinationSlotName "Production"
    
  • 打开Windows任务计划程序,创建定时任务,设置凌晨2点执行该脚本,确保执行账户有足够权限

Linux环境(Cron定时任务)

  • 编写Azure CLI脚本:
    # 服务主体登录
    az login --service-principal -u "服务主体ID" -p "服务主体密钥" --tenant "租户ID"
    # 执行槽交换
    az webapp deployment slot swap --resource-group "资源组名称" --name "App Service名称" --slot "Test" --target-slot "Production"
    
  • 编辑crontab配置,添加定时任务:
    # 每天凌晨2点执行交换(UTC时区,需根据本地时区调整)
    0 2 * * * /usr/bin/az webapp deployment slot swap --resource-group "资源组名称" --name "App Service名称" --slot "Test" --target-slot "Production"
    

关键提示

  • 交换前务必确保Test槽的应用已通过测试,避免影响生产环境;可在脚本中添加健康检查逻辑(比如调用应用的健康状态接口),检查通过后再执行交换
  • 注意时区设置,Azure默认用UTC,要根据你的业务时区调整定时时间
  • 开启操作日志记录,方便后续排查问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 00:47:34