Ř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"