Azure 容器应用程序无法从不同订阅中存在的 Azure 容器注册表中提取镜像

标签 azure azure-devops azure-pipelines azure-container-registry azure-container-apps

我的场景就像我在一个订阅(例如订阅 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 通过 CloudShellLocalPowerShell

我测试了与租户根管理组创建ARM服务连接,其引用的服务原则可以访问这两个订阅;问题仍然存在。

FailureWithTenantRootMG

在本地 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

FailureInLocalPowerShell

这似乎是此命令的限制 az containerapp up 。您可以考虑报告issue使用 Azure CLI。

关于Azure 容器应用程序无法从不同订阅中存在的 Azure 容器注册表中提取镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75028523/

相关文章:

c# - DeleteFiles 任务从匹配列表中排除单个文件

azure - 与多个开发人员一起设置 Azure Web 应用程序的最佳工作流程

Azure DevOps 部署管道失败,并显示[错误]错误 : Cannot find any file based on/Users/runner/work/1/s/XYZ/**/ABC. ipa

git - Visual Studio 团队服务与 GitHub

azure - Azure Pipeline 可以在门控/批准阶段使用模板吗?

msbuild - 使用变量提取 MSDeploy Zip 包

azure - 多个 Windows Azure 实例上的 SignalR(无背板)

使用 cli 更新时,azure 容器应用程序不会更新

azure - 如何在部署机器人时测试 Azure 插槽

azure - 如何从 azure Devops 管道运行 powershell 命令到本地远程服务器