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

如何在Azure DevOps流水线内获取构建时间线并对接日志API?

Azure DevOps流水线获取构建时间线的可行方案

解决连接关闭错误的核心步骤

连接关闭问题大多源于TLS版本不兼容或未正确使用系统令牌,按以下方式修正PowerShell脚本即可解决:

1. 启用流水线OAuth令牌访问

在流水线编辑页面:

  • 切换到「变量」选项卡,点击「查看隐藏变量」
  • 找到SYSTEM_ACCESSTOKEN,勾选「允许脚本访问OAuth令牌」

2. 修正后的PowerShell脚本

# 从系统环境变量获取基础信息
$orgUrl = $Env:SYSTEM_TEAMFOUNDATIONCOLLECTIONURI
$project = $Env:SYSTEM_TEAMPROJECT
$buildId = $Env:BUILD_BUILDID
$apiVersion = "7.1-preview.2"

# 配置请求头(使用系统自动生成的令牌)
$authHeader = @{ Authorization = "Bearer $($Env:SYSTEM_ACCESSTOKEN)" }

# 强制使用TLS 1.2,避免旧协议导致的连接中断
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

try {
    # 构造时间线API请求地址
    $timelineApiUrl = "$orgUrl$project/_apis/build/builds/$buildId/timeline?api-version=$apiVersion"
    # 调用API获取时间线数据
    $timelineData = Invoke-RestMethod -Uri $timelineApiUrl -Headers $authHeader -Method Get

    # 这里添加将时间线传入日志API的逻辑
    $timelineJson = $timelineData | ConvertTo-Json -Depth 10
    # Invoke-RestMethod -Uri "你的日志API地址" -Method Post -Body $timelineJson -ContentType "application/json"

    Write-Host "成功获取构建时间线,共$($timelineData.records.Count)条执行记录"
}
catch {
    Write-Error "获取时间线失败:$($_.Exception.Message)"
}

更简便的替代方案:使用Azure DevOps CLI

如果不想处理PowerShell的连接细节,可直接用Azure DevOps CLI调用,无需手动配置令牌和TLS:

  1. 在流水线中添加「Azure CLI」任务,选择PowerShell(或Bash)作为运行环境
  2. 执行以下命令获取时间线:
# 获取构建时间线并输出为JSON格式
$timelineJson = az pipelines build timeline show `
    --id $Env:BUILD_BUILDID `
    --organization $Env:SYSTEM_TEAMFOUNDATIONCOLLECTIONURI `
    --project $Env:SYSTEM_TEAMPROJECT `
    --output json

# 将JSON传入日志API
# Invoke-RestMethod -Uri "你的日志API地址" -Method Post -Body $timelineJson -ContentType "application/json"

额外排查要点

  • API版本:建议使用最新的稳定预览版(如7.1-preview.2),避免旧版本API兼容性问题
  • 权限检查:确保流水线的系统服务账号拥有「读取构建」权限(默认已具备,若修改过权限需验证)
  • 旧版PowerShell兼容:如果使用PowerShell 5.x,可在Invoke-RestMethod中添加-UseBasicParsing参数规避解析错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 13:10:03