az acr-如果单个帐户上有多个订阅,则无法找到存储库

时间:2019-04-19 10:08:00

标签: azure azure-cli azure-container-registry

我正在使用 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...命令后,它会抛出如下错误消息:

错误

  

名称为“ ParentStorage”并类型的资源   找不到“ Microsoft.ContainerRegistry /注册表”   订阅“ Visual Studio专业版   (ID)”。

到目前为止,我发现它正在尝试在我的Visual Studio订阅(S1)下进行搜索。由于S1是默认订阅,存储库位于S2中。因此,我将S2设置为默认订阅,然后再次尝试,但没有成功

当我尝试执行以下命令时,事件引发了相同的错误:

az acr show --name ParentStorage

PS :我尝试使用特定的订阅登录,但无法登录。

请让我知道我在这里想念什么。

3 个答案:

答案 0 :(得分:1)

对于您的问题,您的注册表似乎不在当前订阅中。使用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设置订阅。

如果您还有其他问题,请告诉我。或者,如果您认为有帮助,可以接受它作为答案。

答案 1 :(得分:0)

只需按照here中提供的答案添加其他内容

我们可以使用下面的命令来构建具有特定订阅ID的文件,这样,只要多个用户想要以不同的默认订阅ID来执行此命令,就无需将其他订阅作为其默认订阅。

$PCServices = @("AJRouter", "ALG", "bthserv", "CertPropSvc", "Dnscache", "MapsBroker", "lfsvc", "HomeGroupListener", "HomeGroupProvider", "vmickvpexchange", "vmicguestinterface", "vmicshutdown", "vmicheartbeat", "vmicrdv", "vmictimesync", "vmicvss", "SharedAccess", "iphlpsvc"); Write-Host "Checking PC Service Status" try { $PCServiceDetails = ForEach($PCSvc in $PCServices) { Get-Service -Name $PCSvc -ErrorAction Stop Write-Host "$($_.DisplayName) : ($($_.Name)) $($_.Status) : Startup Type : $($_.StartType)" } } catch { Write-Host "Unable to get service details: $($PCServiceDetails.Name)/$($PCServiceDetails.DisplayName) : $($_.Exception)" }

希望这对其他人也有帮助。

答案 2 :(得分:0)

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