【问题标题】:Run a Azure DevOps job with different user使用不同的用户运行 Azure DevOps 作业
【发布时间】:2020-12-25 21:22:16
【问题描述】:

我有一个 Azure DevOps 构建管道,它使用 ARM 模板在 Azure 云上部署了一些警报。我想在不同的天蓝色云帐户上部署警报,在部署警报之前,我需要列出一些事情,因为部署代码需要这些信息。 我的问题是,要从另一个帐户获取详细信息,我需要使用具有额外权限的不同用户执行 Azure DevOps 管道。当我触发作业时,它使用我的凭据,所以我如何切换用户以执行该特权用户来部署警报。有什么方法可以在管道中配置该用户?

【问题讨论】:

  • 这张票有更新吗?如果答案能给你一些帮助,请随时告诉我。只是提醒this

标签: azure azure-devops


【解决方案1】:

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

这是我在 postman 中测试的示例:

您只需在此处更改个人访问令牌即可使用其他帐户运行构建。 您还可以在 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。

【讨论】:

    猜你喜欢
    • 2020-04-03
    • 2020-06-30
    • 1970-01-01
    • 2019-03-16
    • 2013-04-13
    • 1970-01-01
    • 2020-05-23
    • 1970-01-01
    • 2021-05-13
    相关资源
    最近更新 更多