Freigeben über


Beheben von Fehlern bei der Registrierung von Ressourcenanbietern

In diesem Artikel werden Registrierungsfehler bei Ressourcenanbietern beschrieben, die auftreten, wenn Sie einen Ressourcenanbieter verwenden, den Sie noch nicht in Ihrem Azure-Abonnement verwendet haben. Die Fehler werden angezeigt, wenn Sie Ressourcen mit einer Bicep-Datei oder einer Azure Resource Manager-Vorlage (ARM-Vorlage) bereitstellen. Wenn Azure einen Ressourcenanbieter nicht automatisch registriert, können Sie eine manuelle Registrierung durchführen.

Symptom

Wenn eine Ressource bereitgestellt wird, erhalten Sie möglicherweise den folgenden Fehlercode und die folgende Meldung:

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

Oder Sie erhalten eine ähnliche Meldung mit folgendem Inhalt:

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

Die Fehlermeldung sollte Ihnen Vorschläge für die unterstützten Speicherorte und API-Versionen geben. Sie können Ihre Vorlage so ändern, dass sie einen vorgeschlagenen Wert verwendet. Die meisten Anbieter werden automatisch über das Microsoft Azure-Portal oder die Befehlszeilenschnittstelle registriert, aber nicht alle. Wenn Sie einen bestimmten Ressourcenanbieter noch nicht verwendet haben, müssen Sie diesen Anbieter möglicherweise registrieren.

Wenn das automatische Herunterfahren der virtuellen Maschine (VM) deaktiviert ist, wird möglicherweise eine Fehlermeldung ähnlich der folgenden angezeigt:

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

Ein unerwarteter Fehler kann für einen Ressourcenanbieter auftreten, der sich nicht in Ihrer ARM-Vorlage oder Bicep-Datei befindet. Dieser Fehler kann auftreten, wenn eine Ressource bereitgestellt wird, die andere unterstützende Ressourcen erstellt. Die Ressource in Ihrer Vorlage fügt z. B. Überwachungs- oder Sicherheitsressourcen hinzu. Die Fehlermeldung gibt an, dass der Namespace des Ressourcenanbieters, den Sie registrieren müssen, für die unterstützende Ressource gilt.

Ursache

Sie erhalten diese Fehler aus einem der folgenden Gründe:

  • Der erforderliche Ressourcenanbieter wurde nicht für Ihr Abonnement registriert.
  • Die API-Version wird für den Ressourcentyp nicht unterstützt.
  • Der Standort wird für den Ressourcentyp nicht unterstützt.
  • Für das automatische Herunterfahren von VMs muss der Microsoft.DevTestLab Ressourcenanbieter registriert sein.

Lösung

Sie können die Azure CLI verwenden, um Informationen über den Registrierungsstatus eines Ressourcenanbieters abzurufen und einen Ressourcenanbieter zu registrieren.

Verwenden Sie az provider list , um den Registrierungsstatus für die Ressourcenanbieter Ihres Abonnements anzuzeigen. In den Beispielen wird der --output table Parameter verwendet, um die Ausgabe im Hinblick auf die Lesbarkeit zu filtern. Sie können den Parameter weglassen, um alle Eigenschaften anzuzeigen.

Der folgende Befehl listet alle Ressourcenanbieter des Abonnements auf, und gibt an, ob es sich um Registered oder NotRegistered.

az provider list --output table

Sie können die Ausgabe nach Registrierungsstatus filtern. Ersetzen Sie den Abfragewert durch Registered oder NotRegistered.

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

Rufen Sie den Registrierungsstatus für einen bestimmten Ressourcenanbieter ab:

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

Um einen Ressourcenanbieter zu registrieren, verwenden Sie den Befehl az provider register , und geben Sie den zu registrierenden Namespace an.

az provider register --namespace Microsoft.Cdn

Verwenden Sie az provider show, um die unterstützten Speicherorte eines Ressourcentyps abzurufen:

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

Rufen Sie die unterstützten API-Versionen eines Ressourcentyps ab:

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