我正在使用 Azure CLI v2.0.62 。
我在单个帐户的Azure中确实有多个订阅-S1,S2,S3,S4。
我正在执行以下脚本,将动态值插入存储库:
az login
az acr build "ParentStorage" --platform windows -f Dockerfile -t ChildRepository:<dynamicValue>
这里,ParentStorage
是Storage Account
类型,而ChileRepository
是Repository
类型。
首先,当执行登录命令时,它会向我提供可用订阅的列表。但是执行az acr build...
命令后,它会抛出如下错误消息:
错误
名称为“ ParentStorage”并类型的资源 找不到“ Microsoft.ContainerRegistry /注册表” 订阅“ Visual Studio专业版 (ID)”。
到目前为止,我发现它正在尝试在我的Visual Studio订阅(S1
)下进行搜索。由于S1
是默认订阅,存储库位于S2
中。因此,我将S2
设置为默认订阅,然后再次尝试,但没有成功。
当我尝试执行以下命令时,事件引发了相同的错误:
az acr show --name ParentStorage
PS :我尝试使用特定的订阅登录,但无法登录。
请让我知道我在这里想念什么。
答案 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资源。