用其他用户运行Azure DevOps作业

时间:2020-09-07 12:39:36

标签: azure azure-devops

我有一个Azure DevOps构建管道,该管道在带有ARM模板的Azure云上部署了很少的警报。我想在不同的Azure云帐户上部署警报,并且在部署警报之前,我需要列出一些内容,因为部署代码需要这些信息。 我的问题是,要从另一个帐户获取详细信息,我需要使用具有其他特权的其他用户执行Azure DevOps管道。触发作业时,它将使用我的凭据,因此如何切换用户以执行该特权用户来部署警报。有什么方法可以在管道中配置该用户?

1 个答案:

答案 0 :(得分:0)

我建议您可以使用REST API来运行构建。您可以要求其他用户向您提供个人访问令牌,然后您可以使用此个人访问令牌作为凭据来运行REST API。 这是有关将构建队列的文档:https://docs.microsoft.com/en-us/rest/api/azure/devops/build/builds/queue?view=azure-devops-rest-6.1

这是我在邮递员中测试的一个样本: enter image description here enter image description here

您只需要在此处更改个人访问令牌即可使用其他帐户运行构建。 您还可以在PowerShell任务中运行此REST API。这是一个示例:

$url = "https://dev.azure.com/{organization name}/{project name}/_apis/pipelines/{build id}/runs?api-version=5.1-preview.1"
$contentType = "application/json"
$user="user"
$token="$(PAT)"
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user,$token)))
$body= @'
{
"definition":
{
"id":172
}
}
'@
Invoke-RestMethod -Uri $url -Method Post -ContentType $contentType -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -Body $body 

您可以在变量中更改PAT。