队列作业卡在 Azure DevOps 管道中

问题描述 投票:0回答:1

我的 Azure DevOps 项目中的代理池作业遇到问题。

我有 Azure Pipelines 代理池(非自托管),它说它正在运行 2 个作业,并且队列中还有 70 个作业。

当我单击 Azure Pipelines 代理池时,它会显示所有作业。所有作业都显示有白色圆圈图标,这意味着实际上没有任何作业正在运行。

我尝试取消并删除所有这些作业,现在,当我单击其中任何作业时,它会显示以下消息:

我尝试过升级管道管理安全选项中的用户权限、禁用天蓝色管道代理池的代理、删除天蓝色代理池并重新添加它......但都不适合我。它不会改变任何东西。

我还看到有人说这可能是 Azure DevOps 的管道延迟错误,其中一些人在几个小时/几天后自行解决了这个错误,但我需要紧急解决它。

如有任何建议,我们将不胜感激

azure azure-devops azure-pipelines azure-pipelines-release-pipeline azure-pipelines-yaml
1个回答
0
投票

我还看到有人说这可能是 Azure DevOps 的管道延迟错误,其中一些人在几个小时/几天后自行解决了这个错误,但我需要紧急解决它。

是的,几小时/几天后可以恢复。但如果现在仍然存在,请尝试以下选项:

  1. 购买另一个并行作业,运行后(管道可以授予代理),删除购买的作业(链接这里)。

  2. 如果不起作用,请使用rest api Agents - List 授予池状态:

https://dev.azure.com/{organization}/_apis/distributedtask/pools/{poolId}/agents?api-version=6.0

检查响应中的

provisioningState
是否为
Deallocated
。如果是
not
,请通过下面的 PowerShell 脚本更新该值(将池 id 和代理 id 更改为您的):

Param(
   [string]$organization = "yourorgname",
   [string]$token = "PAT"  
)

$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user,$token)))

$url="https://dev.azure.com/$organization/_apis/distributedtask/pools/9/agents/8?api-version=5.1"

$body = @"
{
    "Id": 8,
    "ProvisioningState": "Deallocated"
}
"@

Invoke-RestMethod -Uri $url -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -Body $body -ContentType "application/json" -Method PATCH

如果问题仍然存在,也可能是由于

Agent Pool Service (9)
身份已从您的
[organization]/Security Service Group
中删除所致。请注意,此处的身份号码 (9) 可能与您的组织不同。请检查链接了解详情。

如果您需要紧急解决,第一个选择是通过 Azure 门户提出支持请求。您需要拥有与您的订阅关联的 Azure 支持计划?单击此处创建支持请求。请在支持请求描述中分享构建管道 URL 和问题详细信息。

© www.soinside.com 2019 - 2024. All rights reserved.