Beheben von Fehlern bei der Ressourcenanbieterregistrierung

In diesem Artikel werden Fehler bei der Registrierung von Ressourcenanbietern beschrieben, die auftreten, wenn Sie einen Ressourcenanbieter verwenden, den Sie noch nicht in Ihrem Azure-Abonnement verwendet haben. Die Fehler treten auf, 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 vornehmen.

Symptom

Wenn eine Ressource bereitgestellt wird, werden möglicherweise der folgende Fehlercode und die folgende Fehlermeldung angezeigt:

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

Oder es wird eine ähnliche Meldung mit folgender Aussage angezeigt:

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

Die Fehlermeldung enthält in der Regel Vorschläge für die unterstützten Standorte und API-Versionen. Sie können Ihre Vorlage in einen der vorgeschlagenen Werte ändern. Die meisten – jedoch nicht alle – Anbieter werden automatisch über das Microsoft Azure-Portal oder die Befehlszeilenschnittstelle registriert. Wenn Sie einen bestimmten Ressourcenanbieter bisher noch nicht verwendet haben, müssen Sie diesen Anbieter unter Umständen registrieren.

Wenn das automatische Herunterfahren der VM deaktiviert ist, wird möglicherweise eine Fehlermeldung wie die folgende angezeigt:

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

Bei einem Ressourcenanbieter, der nicht in Ihrer ARM-Vorlage oder Bicep-Datei ARM enthalten ist, kann ein unerwarteter Fehler auftreten. Dieser Fehler kann auftreten, wenn eine Ressource bereitgestellt wird, die weitere unterstützende Ressourcen erstellt. Mit der Ressource in Ihrer Vorlage werden beispielsweise Überwachungs- oder Sicherheitsressourcen hinzufügt. 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 für Ihr Abonnement nicht 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 der VM muss der Microsoft.DevTestLab Ressourcenanbieter registriert sein.

Lösung

Sie können über die Azure-Befehlszeilenschnittstelle Informationen zum Registrierungsstatus eines Ressourcenanbieters abrufen und einen Ressourcenanbieter registrieren.

Mit dem Befehl az provider list können Sie den Registrierungsstatus des Ressourcenanbieters Ihres Abonnements anzeigen. In den Beispielen wird der Parameter --output table verwendet, um die Ausgabe für eine bessere Lesbarkeit zu filtern. Sie können den Parameter weglassen, um alle Eigenschaften zu sehen.

Der folgende Befehl listet alle Ressourcenanbieter des Abonnements auf und gibt an, ob sie Registered oder NotRegistered sind.

az provider list --output table

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

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

So rufen Sie den Registrierungsstatus eines bestimmten Ressourcenanbieters 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 Namespace für die Registrierung an.

az provider register --namespace Microsoft.Cdn

Mit az provider show können Sie die unterstützten Standorte eines Ressourcentyps abrufen:

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

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

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