Fouten oplossen voor de registratie van de resourceprovider

In dit artikel worden de registratiefouten van de resourceprovider beschreven die optreden wanneer u een resourceprovider gebruikt die u nog niet hebt gebruikt in uw Azure-abonnement. De fouten worden weergegeven wanneer u resources implementeert met een Bicep-bestand of een Azure Resource Manager-sjabloon (ARM-sjabloon). Als Azure niet automatisch een resourceprovider registreert, kunt u een handmatige registratie uitvoeren.

Symptoom

Wanneer een resource wordt geïmplementeerd, ontvangt u mogelijk de volgende foutcode en het volgende bericht:

Code: NoRegisteredProviderFound
Message: No registered resource provider found for location {location}
and API version {api-version} for type {resource-type}.

Of u ontvangt mogelijk een soortgelijk bericht met de volgende strekking:

Code: MissingSubscriptionRegistration
Message: The subscription is not registered to use namespace {resource-provider-namespace}

Het foutbericht moet u suggesties geven voor de ondersteunde locaties en API-versies. U kunt uw sjabloon wijzigen om een voorgestelde waarde te gebruiken. De meeste providers worden automatisch geregistreerd door de Microsoft Azure Portal of de opdrachtregelinterface, maar niet allemaal. Als u een bepaalde resourceprovider nog niet eerder hebt gebruikt, moet u die provider mogelijk registreren.

Wanneer automatisch afsluiten van virtuele machine (VM) is uitgeschakeld, ontvangt u mogelijk een foutbericht dat lijkt op:

Code: AuthorizationFailed
Message: The client '<identifier>' with object id '<identifier>' does not have authorization to perform
action 'Microsoft.Compute/virtualMachines/read' over scope ...

Er kan een onverwachte fout optreden voor een resourceprovider die zich niet in uw ARM-sjabloon of Bicep-bestand bevindt. Deze fout kan optreden wanneer een resource wordt geïmplementeerd waarmee andere ondersteunende resources worden gemaakt. De resource in uw sjabloon voegt bijvoorbeeld bewakings- of beveiligingsresources toe. Het foutbericht geeft aan dat de naamruimte van de resourceprovider die u moet registreren voor de ondersteunende resource is.

Oorzaak

U ontvangt deze fouten om een van de volgende redenen:

  • De vereiste resourceprovider is niet geregistreerd voor uw abonnement.
  • API-versie wordt niet ondersteund voor het resourcetype.
  • Locatie wordt niet ondersteund voor het resourcetype.
  • Voor automatisch afsluiten van vm's moet de Microsoft.DevTestLab resourceprovider zijn geregistreerd.

Oplossing

U kunt Azure CLI gebruiken om informatie op te halen over de registratiestatus van een resourceprovider en om een resourceprovider te registreren.

Gebruik az provider list om de registratiestatus voor de resourceproviders van uw abonnement weer te geven. In de voorbeelden wordt de --output table parameter gebruikt om de uitvoer te filteren op leesbaarheid. U kunt de parameter weglaten om alle eigenschappen te zien.

Met de volgende opdracht worden alle resourceproviders van het abonnement weergegeven en wordt aangegeven of ze of NotRegisteredzijnRegistered.

az provider list --output table

U kunt de uitvoer filteren op registratiestatus. Vervang de querywaarde door Registered of NotRegistered.

az provider list --query "[?registrationState=='Registered']" --output table

De registratiestatus voor een specifieke resourceprovider ophalen:

az provider list --query "[?namespace=='Microsoft.Compute']" --output table

Als u een resourceprovider wilt registreren, gebruikt u de opdracht az provider register en geeft u de naamruimte op die u wilt registreren.

az provider register --namespace Microsoft.Cdn

Als u de ondersteunde locaties van een resourcetype wilt ophalen, gebruikt u az provider show:

az provider show --namespace Microsoft.Web --query "resourceTypes[?resourceType=='sites'].locations"

De ondersteunde API-versies van een resourcetype ophalen:

az provider show --namespace Microsoft.Web --query "resourceTypes[?resourceType=='sites'].apiVersions"