Azure devops 如何确定使用Azure DevOps REST Api运行构建任务的物理机器?
我们有一个本地Azure DevOps 2019。我需要知道什么构建在什么机器上运行,而不是代理 动机:当构建速度较慢时,我想知道特定物理机(可能是虚拟机,但为此,我称之为物理机以区别于代理)上运行的构建。这可以帮助我们确定某些构建是否不应该在同一台机器上运行 给定构建对象,我可以从构建任务中提取工作人员名称:Azure devops 如何确定使用Azure DevOps REST Api运行构建任务的物理机器?,azure-devops,azure-devops-rest-api,Azure Devops,Azure Devops Rest Api,我们有一个本地Azure DevOps 2019。我需要知道什么构建在什么机器上运行,而不是代理 动机:当构建速度较慢时,我想知道特定物理机(可能是虚拟机,但为此,我称之为物理机以区别于代理)上运行的构建。这可以帮助我们确定某些构建是否不应该在同一台机器上运行 给定构建对象,我可以从构建任务中提取工作人员名称: C:\> (Invoke-RestMethod $Build._links.timeline.href -UseDefaultCredentials).records.worker
C:\> (Invoke-RestMethod $Build._links.timeline.href -UseDefaultCredentials).records.workerName |? { $_ } | sort -unique
TDC5DFC1BLD10_02
C:\>
因此,我知道构建中的所有任务都是在构建代理TDC5DFC1BLD10_02上运行的。但是我想知道物理机器的名称。因此,我使用代理的名称查询代理:
C:\> (Invoke-RestMethod "$TfsInstanceUrl/_apis/distributedtask/pools/$($build.queue.pool.id)/agents?agentName=TDC5DFC1BLD10_02" -UseDefaultCredentials).value
_links : @{self=; web=}
maxParallelism : 1
createdOn : 2019-05-16T19:33:31.567Z
authorization : @{clientId=c4cebb22-e14f-4fdb-844c-079150766efc; publicKey=}
id : 308
name : TDC5DFC1BLD10_02
version : 2.131.0
osDescription : Microsoft Windows 10.0.14393
enabled : True
status : online
provisioningState : Provisioned
C:\>
但它没有给我物理机器。我不知道队列或池是什么,但我也可以检查它们:
C:\> $Build.queue | ConvertTo-Json
{
"id": 1929,
"name": "GC-Master-TDC5DFC1BLD08-11",
"pool": {
"id": 90,
"name": "GC-Master-TDC5DFC1BLD08-11"
}
}
C:\> Invoke-RestMethod "$TfsInstanceUrl/SharpTop/_apis/distributedtask/queues/1929" -UseDefaultCredentials | ConvertTo-Json
{
"id": 1929,
"projectId": "ecff38d6-a219-4739-8b97-5e5d8d00e7ed",
"name": "GC-Master-TDC5DFC1BLD08-11",
"pool": {
"id": 90,
"scope": "a984b12d-89d2-47d6-998e-b9bfaa69ee85",
"name": "GC-Master-TDC5DFC1BLD08-11",
"isHosted": false,
"poolType": "automation",
"size": 8
}
}
C:\> Invoke-RestMethod "$TfsInstanceUrl/_apis/distributedtask/pools/90" -UseDefaultCredentials
createdOn : 2019-05-16T19:13:33.493Z
autoProvision : True
autoSize :
agentCloudId :
createdBy : @{displayName=Doe, John;
url=http://tdc1tfsapp01.xyz.com:8080/tfs/_apis/Identities/cc71b5eb-9dd6-436a-b722-6790d7ef4877; _links=;
id=cc71b5eb-9dd6-436a-b722-6790d7ef4877; uniqueName=xyz\P120A76; imageUrl=http://tdc1tfsapp01.xyz.com:8080/t
fs/_api/_common/identityImage?id=cc71b5eb-9dd6-436a-b722-6790d7ef4877;
descriptor=win.Uy0xLTUtMjEtNDg3MjU1NDc3LTE2MzE1MjcwMjItMzUxNzQ0NDQyLTE1NzQy}
owner : @{displayName=Doe, John;
url=http://tdc1tfsapp01.xyz.com:8080/tfs/_apis/Identities/cc71b5eb-9dd6-436a-b722-6790d7ef4877; _links=;
id=cc71b5eb-9dd6-436a-b722-6790d7ef4877; uniqueName=xyz\P120A76; imageUrl=http://tdc1tfsapp01.xyz.com:8080/t
fs/_api/_common/identityImage?id=cc71b5eb-9dd6-436a-b722-6790d7ef4877;
descriptor=win.Uy0xLTUtMjEtNDg3MjU1NDc3LTE2MzE1MjcwMjItMzUxNzQ0NDQyLTE1NzQy}
id : 90
scope : a984b12d-89d2-47d6-998e-b9bfaa69ee85
name : GC-Master-TDC5DFC1BLD08-11
isHosted : False
poolType : automation
size : 8
我仍然对物理机器一无所知。如何操作?Agent.ComputerName保存执行作业的代理的主机名值 看看特工的能力。里面应该有一个计算机名,确实如此。你能把它安排成正式的回答吗?@DanielManna请添加你的评论作为回答