Partager via


Résolution des erreurs d’inscription du fournisseur de ressources

Cet article décrit les erreurs d’inscription du fournisseur de ressources qui se produisent lorsque vous utilisez un fournisseur de ressources que vous n’avez pas encore utilisé dans votre abonnement Azure. Les erreurs s’affichent lorsque vous déployez des ressources à l’aide d’un fichier Bicep ou d’un modèle Azure Resource Manager (modèle ARM). Si Azure n’inscrit pas automatiquement un fournisseur de ressources, vous pouvez effectuer une inscription manuelle.

Symptôme

Lorsqu’une ressource est déployée, vous pouvez recevoir le code d’erreur et le message suivants :

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

Vous pouvez également recevoir un message similaire indiquant :

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

Le message d’erreur doit vous donner des suggestions pour les emplacements pris en charge et les versions de l’API. Vous pouvez modifier votre modèle pour utiliser une valeur suggérée. La plupart des fournisseurs sont inscrits automatiquement par le portail Microsoft Azure ou l’interface de ligne de commande, mais pas tous. Si vous n’avez jamais utilisé un fournisseur de ressources particulier auparavant, vous devrez peut-être l’inscrire.

Lorsque l’arrêt automatique de la machine virtuelle est désactivé, vous pouvez recevoir un message d’erreur similaire à :

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

Une erreur inattendue peut se produire pour un fournisseur de ressources qui ne figure pas dans votre modèle ARM ou votre fichier Bicep. Cette erreur peut se produire lorsqu’une ressource est déployée et crée d’autres ressources de prise en charge. Par exemple, la ressource de votre modèle ajoute des ressources de surveillance ou de sécurité. Le message d’erreur indique que l’espace de noms du fournisseur de ressources que vous devez inscrire est celui de la ressource de prise en charge.

La cause

Vous recevez ces erreurs pour l’une des raisons suivantes :

  • Le fournisseur de ressources requis n’a pas été enregistré pour votre abonnement.
  • La version de l’API n’est pas prise en charge pour le type de ressource.
  • L’emplacement n’est pas pris en charge pour le type de ressource.
  • Pour l’arrêt automatique de la machine virtuelle, le fournisseur de Microsoft.DevTestLab ressources doit être inscrit.

Solution

Vous pouvez utiliser Azure CLI pour obtenir des informations sur l’état d’inscription d’un fournisseur de ressources et inscrire un fournisseur de ressources.

Utilisez az provider list pour afficher l’état d’inscription des fournisseurs de ressources de votre abonnement. Les exemples utilisent le --output table paramètre pour filtrer la sortie afin d’en vérifier la lisibilité. Vous pouvez omettre le paramètre pour afficher toutes les propriétés.

La commande suivante répertorie tous les fournisseurs de ressources de l’abonnement et indique s’ils sont Registered ou NotRegistered.

az provider list --output table

Vous pouvez filtrer la sortie par état d’enregistrement. Remplacez la valeur de la requête par Registered ou NotRegistered.

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

Obtenez l’état d’inscription d’un fournisseur de ressources spécifique :

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

Pour inscrire un fournisseur de ressources, utilisez la commande az provider register et spécifiez l’espace de noms à inscrire.

az provider register --namespace Microsoft.Cdn

Pour obtenir les emplacements pris en charge d’un type de ressource, utilisez az provider show :

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

Obtenez les versions d’API prises en charge par un type de ressource :

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