azure az acr -在单个帐户上有多个订阅的情况下无法找到存储库

icnyk63a  于 2023-03-03  发布在  其他
关注(0)|答案(4)|浏览(118)

我正在使用Azure CLI v2.0.62
我在Azure的单个帐户上有多个订阅-S1、S2、S3、S4。
我正在执行下面的脚本插入动态值到存储库:

az login
az acr build "ParentStorage" --platform windows -f Dockerfile -t ChildRepository:<dynamicValue>

这里,ParentStorageStorage Account类型,并且ChileRepositoryRepository类型。
起初,当登录命令得到执行,它给我可用的订阅列表。但在执行az acr build...命令后,它抛出如下错误消息:

    • 错误**

未能在订阅"Visual Studio专业版(ID)"中找到名为"ParentStorage"、类型为"Microsoft. ContainerRegistry/registrations"的资源。
到目前为止,我发现它试图在我的Visual Studio订阅(S1)下搜索。由于S1是默认订阅,而存储库在S2中。所以我将S2设置为默认订阅,并再次尝试 * 但它不起作用 *。
事件,当我尝试执行下面的命令时,它抛出了相同的错误:
az acr show --name ParentStorage

    • P.S.**:我尝试使用特定订阅登录,但无法登录。

请告诉我我错过了什么。

k3fezbri

k3fezbri1#

对于您的问题,您的注册表似乎不在当前订阅中。当您使用CLI命令az login时,您使用默认订阅登录。对您而言,“Visual Studio Professional(ID)”似乎是默认值。您应检查您的注册表是否在当前订阅中。如果不在,则应通过CLI命令将该订阅设置为当前订阅:

az account set --subscription subscription_id

那么我建议您最好使用CLI命令再次检查注册表是否存在:

az acr show -n acr_name

它将显示您的注册表信息。这次,您可以根据需要使用CLI命令az acr build构建映像。
此外,您还可以通过CLI命令az login使用参数--subscription设置登录时间内的订阅。
如果你还有其他问题,请告诉我。或者如果你认为这是有帮助的,你可以接受它作为答案。

jucafojl

jucafojl2#

我遇到了这个问题,并发现了另一个问题。我使用的服务提供商(SP)只有“Acr Push”角色。我必须添加“Contributor”角色才能解决这个问题。因此,“Acr Push”似乎没有足够的权限查看ACR资源。

nhjlsmyf

nhjlsmyf3#

只需按照here中提供的答案添加一项内容
我们可以使用下面的命令用特定的订阅ID来构建,这样每当多个用户想用他们不同的默认订阅ID来执行这个命令时,他们就不需要将其他订阅作为他们的默认订阅。
az acr build --subscription $SubscriptionId -r $registry --platform Windows -f Dockerfile -t XYZ:v$version obj
希望这对其他人也有帮助。

xhv8bpkk

xhv8bpkk4#

我设法克服了在命令中添加资源组时出现的相同错误。

azure$ az acr build --registry mpregistry01 --resource-group cont-demo --image webimage .
Packing source code into tar to upload...
Excluding '.gitignore' based on default ignore rules
Uploading archived source code from '/tmp/build_archive_aaccc61a2001467a841348bca07f6d5e.tar.gz'...
Sending context (917.798 KiB) to registry: mpregistry01...
Queued a build with ID: cj1
Waiting for an agent...

希望这对你有用。

相关问题