Řešení chyb s registrací poskytovatele prostředků
Tento článek popisuje chyby registrace poskytovatele prostředků, ke kterým dochází při použití poskytovatele prostředků, kterého jste ještě nepoužili ve svém předplatném Azure. Chyby se zobrazí při nasazení prostředků pomocí souboru Bicep nebo šablony Azure Resource Manager (šablona ARM). Pokud Azure automaticky neregistruje poskytovatele prostředků, můžete provést ruční registraci.
Příznak
Při nasazení prostředku se může zobrazit následující kód chyby a zpráva:
Code: NoRegisteredProviderFound
Message: No registered resource provider found for location {location}
and API version {api-version} for type {resource-type}.
Nebo se může zobrazit podobná zpráva, která uvádí:
Code: MissingSubscriptionRegistration
Message: The subscription is not registered to use namespace {resource-provider-namespace}
Chybová zpráva by měla obsahovat návrhy podporovaných umístění a verzí rozhraní API. Šablonu můžete změnit tak, aby používala navrženou hodnotu. Většina poskytovatelů je automaticky zaregistrována Azure Portal Microsoftu nebo rozhraním příkazového řádku, ale ne všichni. Pokud jste ještě nepoužívali konkrétního poskytovatele prostředků, možná ho budete muset zaregistrovat.
Pokud je automatické vypnutí virtuálního počítače zakázané, může se zobrazit podobná chybová zpráva:
Code: AuthorizationFailed
Message: The client '<identifier>' with object id '<identifier>' does not have authorization to perform
action 'Microsoft.Compute/virtualMachines/read' over scope ...
U poskytovatele prostředků, který není v šabloně ARM nebo v souboru Bicep, může dojít k neočekávané chybě. K této chybě může dojít při nasazení prostředku, který vytváří další podpůrné prostředky. Prostředek v šabloně například přidá prostředky monitorování nebo zabezpečení. Chybová zpráva označuje, že obor názvů poskytovatele prostředků, který je potřeba zaregistrovat, je pro podpůrný prostředek.
Příčina
Tyto chyby se zobrazí z jednoho z těchto důvodů:
- Požadovaný poskytovatel prostředků není zaregistrovaný pro vaše předplatné.
- Verze rozhraní API není pro typ prostředku podporovaná.
- Umístění typu prostředku není podporováno.
- Pro automatické vypnutí virtuálního počítače musí být zaregistrovaný
Microsoft.DevTestLab
poskytovatel prostředků.
Řešení
Pomocí Azure CLI můžete získat informace o stavu registrace poskytovatele prostředků a zaregistrovat poskytovatele prostředků.
Pomocí příkazu az provider list zobrazte stav registrace pro poskytovatele prostředků vašeho předplatného. Příklady používají parametr k --output table
filtrování výstupu z hlediska čitelnosti. Pokud chcete zobrazit všechny vlastnosti, můžete parametr vynechat.
Následující příkaz zobrazí seznam všech poskytovatelů prostředků předplatného a toho, jestli jsou Registered
nebo NotRegistered
.
az provider list --output table
Výstup můžete filtrovat podle stavu registrace. Nahraďte hodnotu dotazu hodnotou Registered
nebo NotRegistered
.
az provider list --query "[?registrationState=='Registered']" --output table
Získání stavu registrace pro konkrétního poskytovatele prostředků:
az provider list --query "[?namespace=='Microsoft.Compute']" --output table
Pokud chcete zaregistrovat poskytovatele prostředků, použijte příkaz az provider register a zadejte obor názvů , který chcete zaregistrovat.
az provider register --namespace Microsoft.Cdn
Pokud chcete získat podporovaná umístění typu prostředku, použijte příkaz az provider show:
az provider show --namespace Microsoft.Web --query "resourceTypes[?resourceType=='sites'].locations"
Získání podporovaných verzí rozhraní API typu prostředku:
az provider show --namespace Microsoft.Web --query "resourceTypes[?resourceType=='sites'].apiVersions"