Azure devops 无法在Azure DevOps(发布管道)中获取Azure容器注册表的服务连接
我正在尝试从Azure DevOps服务在Azure应用程序服务上部署docker容器。我已将docker映像推送到Azure容器注册表。当我尝试创建发布定义时,我无法找到Azure容器注册表的服务连接。我已经为ACR创建了服务连接,但它没有显示在Azure DevOps门户的列表中 当我选择“Azure容器存储库”作为源类型时,服务连接在下拉框中不可见。我使用DockerHub作为另一个选项。它正在列表中显示服务连接 我按照以下步骤为ACR创建服务连接:Azure devops 无法在Azure DevOps(发布管道)中获取Azure容器注册表的服务连接,azure-devops,azure-pipelines,azure-pipelines-release-pipeline,azure-container-registry,Azure Devops,Azure Pipelines,Azure Pipelines Release Pipeline,Azure Container Registry,我正在尝试从Azure DevOps服务在Azure应用程序服务上部署docker容器。我已将docker映像推送到Azure容器注册表。当我尝试创建发布定义时,我无法找到Azure容器注册表的服务连接。我已经为ACR创建了服务连接,但它没有显示在Azure DevOps门户的列表中 当我选择“Azure容器存储库”作为源类型时,服务连接在下拉框中不可见。我使用DockerHub作为另一个选项。它正在列表中显示服务连接 我按照以下步骤为ACR创建服务连接: 从列表中选择了Docker注册表 已
https://dev.azure.com/{org}/{project}/_API/serviceendpoint/endpoints?type=azurerm
您可以看到此api附带的参数type=azurerm
。它仅获取类型为Azure资源管理器的服务连接。但是容器注册表不属于此目录
因此,您最好创建并使用类型为Azure资源管理器类型的服务连接
找不到的名为endpoint.serviceprincipalid的变量
给定的服务连接
对于第二个问题,我没有从您那里获得太多信息(例如检查桩跟踪)。因此,根据我已知的情况,我建议您将类型从托管身份验证
更改为服务主体身份验证
。然后按照下面的步骤进行配置
这样更安全,可以先授权
服务主体客户端id,它是在Azure应用程序注册中创建应用程序后的应用程序id:
服务主体密钥:
Stack overflow是一个开放的论坛,无法安全地共享一些关键信息(尤其是Fiddler trace),我需要这些信息并用于从后端进行调查。你最好去,因为你只能在那里选择微软。如果可能的话,我可以去那个社区,让那个社区的工程师给我看。因此,我可以继续深入研究。我将重点放在这一点上,并继续讨论您的第二个错误。对于您的第一个错误,这只是因为这里它只获取类型为azurerm的服务连接。您可以按F12,然后单击此图片中显示的刷新按钮吗?接下来,选择您遇到上述错误的服务连接。让我知道您在F12中看到了什么。我检查了我们的源代码,endpoint.serviceprincipalid是在源代码中应用ACR时将添加到标题中的一个。“但是你想知道你那边发生了什么吗?”MerlinLiang MSFT网站继续加载。显示发布设置(工件和暂存)需要时间。请检查我下面的消息,并让我知道服务主体身份验证是否解决了错误。谢谢@Merlin Liang-MSFT。如何在Azure AD中获取服务主体密钥的值?@kumareshbabons,服务主体客户端ID是在Azure应用程序注册中创建的应用程序的应用程序ID。Service principal key是在Azure app Registrations中创建的应用的设置中创建的密钥的值。要确保服务主体密钥与对象ID相同吗?我没有在应用程序服务门户中获得确切的服务主体密钥。@Kumareshbabons,忽略我之前的评论,我想念你的话。查看此项以获取服务主体密钥@Kumareshbabons,我们有一个博客详细描述了这些。您可以查看此博客了解更多信息:-)
2020-02-10 12:31:11.781 INFO - Pulling image from Docker hub:
kbdockerregis/kbdockerimage:15
2020-02-10 12:31:14.406 ERROR - DockerApiException: Docker API responded with
status code=NotFound, response={"message":"pull access denied for
kbdockerregis/kbdockerimage, repository does not exist or may require 'docker
login': denied: requested access to the resource is denied"}
2020-02-10 12:31:14.408 ERROR - Image pull failed: Verify docker image
configuration and credentials (if using private repository)
2020-02-10 12:31:14.412 INFO - Stoping site kbapp1 because it failed during
startup.