如何通过TFS Rest API获取特定发布对应的部署代理?
获取TFS特定发布的部署代理(REST API实现方案)
嘿,这个问题我刚好折腾过!答案是完全可以通过TFS REST API拿到目标发布的部署代理信息,不过得通过两个关联接口查询——直接从发布详情接口是拿不到的,具体步骤如下:
步骤1:获取目标发布的所有部署记录
首先得拿到该发布对应的所有部署实例,因为代理信息是和具体的部署绑定的。调用这个API:
GET https://{instance}/{project}/_apis/release/releases/{releaseId}/deployments?api-version=7.1-preview.2
把{releaseId}替换成你示例里的666就行。这个接口会返回该发布下所有环境的部署记录,每条记录里包含deploymentId(部署唯一ID)、releaseEnvironmentId(发布环境ID)等关键字段,你可以根据环境名称或ID筛选出你关心的那个部署。
步骤2:通过部署ID获取代理详情
拿到目标deploymentId后,调用下面的API,重点是要加上$expand=agent参数来展开代理信息:
GET https://{instance}/{project}/_apis/release/deployments/{deploymentId}?$expand=agent&api-version=7.1-preview.2
返回的响应数据里,agent字段下就是你要的部署代理信息,比如:
name:代理的名称id:代理的唯一标识status:代理当前运行状态pool:代理所属的部署池信息(和你之前查到的池数据完全对应)
小提醒
如果你的发布在多个环境部署过,记得先在步骤1的结果里筛选出目标环境对应的部署记录,再去查询代理信息,避免拿到错误的代理数据。
内容的提问来源于stack exchange,提问作者stef
相关产品推荐
相关产品推荐

