如何禁用及重新启用Azure WebApp的Azure Pipeline自动部署功能
对应需求的实现方案
1. 使用Azure DevOps CLI 启停流水线
首先安装Azure DevOps扩展:az extension add --name azure-devops
先配置默认的组织和项目参数,避免每次执行命令重复传入:az devops configure --defaults organization=https://dev.azure.com/你的组织名 project=你的项目名
- 禁用指定流水线命令:
az pipelines update --id 你的流水线ID --enabled false - 重新启用流水线命令:
az pipelines update --id 你的流水线ID --enabled true
如果你不知道对应流水线的ID,可执行az pipelines list查询所有流水线的ID、名称等信息。
你可以把上述两个命令配置到定时任务(比如Azure Automation Runbook、本地定时脚本等)中,即可实现特定时间段自动禁用、恢复流水线部署。
2. 内置时间窗口判断(无需启停整个流水线)
如果你不想直接停用整个流水线,仅需要跳过特定时间段的部署步骤,可以直接在流水线YAML中增加时间判断逻辑,示例如下:
# 定义变量判断当前是否处于允许部署的时间段,示例为排除每日1:00-3:00的时间段 variables: allowDeploy: ${{ not(and(greaterOrEqual(format('{0:HH}', pipeline.startTime), '01'), lessOrEqual(format('{0:HH}', pipeline.startTime), '03'))) }} # 在部署到Azure WebApp的任务上添加条件判断 - task: AzureWebApp@1 inputs: azureSubscription: '你的服务连接名' appName: '你的WebApp名称' package: '$(System.DefaultWorkingDirectory)/**/*.zip' condition: eq(variables.allowDeploy, true)
配置完成后,即使流水线在禁止时间段被触发,部署步骤也会自动跳过,不会影响你的运维操作。
3. 可视化配置计划触发器排除时段
如果你的流水线使用计划触发器自动触发部署,可以直接在流水线的编辑界面的触发器设置中,可视化添加排除的时间段,无需编写代码或执行命令。
内容的提问来源于stack exchange,提问作者Akash paul
相关产品推荐
相关产品推荐

