Fouten voor de registratie van resourceproviders oplossen

In dit artikel worden fouten 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 Azure Resource Manager-sjabloon (ARM sjabloon). Als azure een resourceprovider niet automatisch registreert, kunt u handmatig registreren.

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 tekst:

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 de 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 deze provider mogelijk registreren.

Wanneer automatisch afsluiten van virtuele machines (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 of Bicep-bestand. Deze fout kan zich voor doen wanneer een resource wordt geïmplementeerd die andere ondersteunende resources maakt. Met de resource in uw sjabloon worden bijvoorbeeld controle- of beveiligingsbronnen toegevoegd. Het foutbericht geeft aan dat de naamruimte van de resourceprovider die u moet registreren, is voor de ondersteunende resource.

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 moet de Microsoft.DevTestLab resourceprovider zijn geregistreerd.

Oplossing

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

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

De volgende opdracht bevat alle resourceproviders van het abonnement en of ze of RegisteredNotRegistered .

az provider list --output table

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

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

De registratiestatus voor een specifieke resourceprovider krijgen:

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

Als u een resourceprovider wilt registreren, gebruikt u de opdracht az-providerregister en geeft u de naamruimte op om u te registreren.

az provider register --namespace Microsoft.Cdn

Als u de ondersteunde locaties van een resourcetype wilt krijgen, gebruikt u de az-providervoorstelling:

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

De ondersteunde API-versies van een resourcetype krijgen:

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