我的场景就像我在一个订阅(例如订阅 A)中共享容器注册表,我需要通过 DevOps 管道将镜像从 ACR 拉取到 ACA。 ACA 存在于每个环境中,例如开发、测试、UAT 等,这些环境位于另一个订阅(例如订阅 B)中。我在 azure devops 管道中使用“az containerapp up”命令来提取共享 ACR 的镜像。出现错误“在订阅 B 中找不到资源”。替代可能的解决方案是什么,因为我们需要降低每个环境使用容器注册表的成本。 我正在使用服务连接来提取镜像,并且服务连接对于单独的订阅是独立的。
我知道它们位于不同的订阅中,但我在网站上搜索以连接两个不同的订阅。 我是否有可能在 azure devops 中连接两个不同的服务连接并使用一个服务连接来提取该镜像。
最佳答案
在将 Azure CLI 命令 az containerapp up
与 Azure 管道集成之前,请首先确认您能够从 Sub B
中提取 ACR 镜像,以将容器应用部署在Sub A
通过 CloudShell 或 LocalPowerShell。
我测试了与租户根管理组
创建ARM服务连接,其引用的服务原则可以访问这两个订阅;问题仍然存在。
在本地 PowerShell 中,我使用我的用户帐户az 登录
,仍然可以重现该问题。
az containerapp up `
--name XXcontainerapp `
--image XXacrsubB.azurecr.io/azurecontainerappdemo:XX `
--resource-group rg-containerapp `
--environment TestEnv `
--registry-username XXacrsubB `
--registry-password XXXXXX
这似乎是此命令的限制 az containerapp up 。您可以考虑报告issue使用 Azure CLI。
关于Azure 容器应用程序无法从不同订阅中存在的 Azure 容器注册表中提取镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75028523/