gpt4 book ai didi

azure - Azure DevOps 中未处理的 : Could not fetch access token for Managed Service Principal.

转载 作者:行者123 更新时间:2023-12-03 06:14:14 34 4
gpt4 key购买 nike

我创建了一个 azure devops 管道,它从源代码构建图像并将其推送到 docker 。我为此创建了一个服务连接,如下所示:

服务连接类型Docker 注册表

使用托管身份验证

enter image description here

但是,当我运行管道作业时,它会抛出此错误

Unhandled: Could not fetch access token for Managed Service Principal. Please configure Managed Service Identity (MSI) for virtual machine 'https://aka.ms/azure-msi-docs'. Status code: %s, status message: %s

docker任务如下:

task: Docker@2
displayName: Build and push
inputs:
command: buildAndPush
repository: $(imageRep)-$(Build.SourceBranchName)
dockerfile: $(dockerfilePath)
containerRegistry: $(dockerRegistryServiceConnection)
tags: |
$(tag)

我有贡献者权利,所以从 az cli 我可以将 docker 推送到 acr,但是使用DevOps 收到此错误。

有人可以帮忙吗?谢谢

最佳答案

如果您在 azure devops 中创建服务连接时选择托管身份,则应使用安装了 docker 的azure devops 自托管代理。请按照以下步骤进行设置配置。

第 1 步:在 Azure 中创建 Windows VM,并使用链接 self-hosted agent on windows machine 在 Azure devops 中配置自托管代理。 .

第 2 步:使用此链接 Docker desktop 在 Windows 虚拟机上安装 Docker 桌面.

第 3 步:在虚拟机中启用系统分配的托管身份,并记下对象 ID 供以后使用,并添加 Azure 角色分配>ACRPushACRPullenter image description here

enter image description here

第 4 步:在 Azure DevOps 中创建服务连接。 enter image description here

第 5 步:创建并运行管道,如下所示。

pool: Default2  # self-hosted agents pool name
steps:
- task: Docker@2
inputs:
containerRegistry: 'svc2-acr' #docker service connection (using managed-identity)
repository: 'testimg'
command: 'buildAndPush'
Dockerfile: 'Dockerfile'
tags: |
$(Build.BuildId)
latest

运行管道并检查结果。 enter image description here

enter image description here

引用文献: Build and publish Docker images to Azure Container Registry using Mnagaed Identities

关于azure - Azure DevOps 中未处理的 : Could not fetch access token for Managed Service Principal.,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76434372/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com