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

如何在Azure DevOps中配置在线/离线目标的持续部署与重试策略?

Azure DevOps CD 离线代理部署问题解决方案

一、调整CD定义,实现代理在线时自动尝试部署

针对生产代理离线不可控的情况,按以下步骤配置CD阶段:

  • 将3台生产代理统一加入同一个部署组,确保都打上production标签。
  • 在CD的生产阶段,选择部署到该生产部署组,进入部署组配置页面:
    • 勾选**“仅部署到在线代理”**,避免向离线代理发送无效部署任务;
    • 部署策略选择**“滚动部署”**,在高级设置里开启“失败时重试”,设置合理的重试间隔(比如15分钟),让系统在代理上线后自动触发重试。
  • 将生产阶段的“失败操作”设置为**“重试阶段”**,而非直接终止,确保离线导致的部署失败能触发重试逻辑。

二、设置24小时内重试后返回失败

通过CD阶段的重试策略和超时设置即可实现:

  • 进入生产阶段的**“选项”**标签页,找到“重试策略”:
    • 设置**“最大重试次数”**:按24小时需求计算,比如每30分钟重试一次,可设置48次;若用指数退避,可设初始间隔15分钟、最大间隔2小时,总重试时长控制在24小时内。
    • 设置**“阶段超时时间”**为1.00:00:00(24小时格式),超过该时间仍未完成部署,管道自动标记为失败。

三、基于代理“在线”状态触发部署

Azure DevOps没有内置的代理状态触发部署功能,但可通过两种方式实现类似效果:

  • 定时检查+条件触发:
    • 创建单独的“检查代理状态”管道,配置定时触发器(比如每10分钟运行一次);
    • 在管道中添加PowerShell脚本,调用Azure DevOps API查询生产代理的在线状态;
    • 检测到至少一台代理在线时,通过API触发CD生产阶段的部署。
  • 监控告警触发:
    • 用Azure Monitor监控代理在线状态(基于Azure DevOps日志或代理心跳数据);
    • 代理上线时触发告警,通过webhook调用Azure DevOps部署触发API,启动生产阶段部署。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 07:35:19