Fournisseurs et types de ressources Azure

Un fournisseur de ressources Azure est un ensemble d’opérations REST qui activent les fonctionnalités d’un service Azure spécifique. Par exemple, le service Key Vault se compose d’un fournisseur de ressources nommé Microsoft.KeyVault. Le fournisseur de ressources définit les opérations REST de gestion des coffres, secrets, clés et certificats.

Le fournisseur de ressources définit les ressources Azure que vous pouvez déployer sur votre compte. Le nom d’un type de ressource suit le format : {fournisseur de ressources}/{type de ressource}. Le type de ressource pour un coffre de clés est Microsoft.KeyVault/vaults.

Dans cet article, vous apprendrez comment :

  • Afficher tous les fournisseurs de ressources dans Azure
  • Vérifier l’état de l’inscription d’un fournisseur de ressources
  • Inscrire un fournisseur de ressources
  • Afficher les types de ressources pour un fournisseur de ressources
  • Afficher les emplacements valides pour un type de ressource
  • Afficher les versions d’API valides pour un type de ressource

Pour obtenir la liste qui mappe les fournisseurs de ressources aux services Azure, consultez Fournisseurs de ressources pour les services Azure.

S’inscrire auprès du fournisseur de ressources

Avant d’utiliser un fournisseur de ressources, vous devez vous assurer que votre abonnement Azure est inscrit auprès du fournisseur de ressources. L’inscription permet de configurer votre abonnement pour qu’il fonctionne avec le fournisseur de ressources.

Important

Inscrivez un fournisseur de ressources uniquement au moment où vous êtes prêt à l’utiliser. L’étape d’inscription vous aide à conserver les privilèges minimaux dans votre abonnement. Un utilisateur malveillant ne peut pas utiliser des fournisseurs de ressources non inscrits.

L’inscription de fournisseurs de ressources inutiles peut entraîner l’apparition d’applications non reconnues dans votre locataire Microsoft Entra. Microsoft ajoute l’application pour un fournisseur de ressources lorsque vous l’inscrivez. Ces applications sont généralement ajoutées par l’API Gestion des services de Windows Azure. Pour éviter des applications inutiles dans votre locataire, inscrivez uniquement les fournisseurs de ressources nécessaires.

Certains fournisseurs de ressources sont inscrits par défaut. Pour obtenir la liste des fournisseurs de ressources inscrits par défaut, consultez Fournisseurs de ressources pour les services Azure.

D’autres fournisseurs de ressources sont inscrits automatiquement lorsque vous effectuez certaines actions. Lorsque vous créez une ressource via le portail, le fournisseur de ressources est généralement inscrit pour vous. Lorsque vous déployez un modèle Azure Resource Manager ou un fichier Bicep, les fournisseurs de ressources définis dans le modèle sont inscrits automatiquement. Parfois, une ressource du modèle nécessite des ressources de prise en charge qui ne figurent pas dans le modèle. Les ressources d’analyse ou de sécurité sont des exemples courants. Vous devez inscrire ces fournisseurs de ressources manuellement.

Pour d’autres scénarios, il se peut que vous deviez inscrire manuellement un fournisseur de ressources.

Important

Votre code d’application ne doit pas bloquer la création de ressources pour un fournisseur de ressources qui est en cours d’inscription. Lorsque vous inscrivez le fournisseur de ressources, l’opération est effectuée individuellement pour chaque région prise en charge. Pour créer des ressources dans une région, l’inscription doit uniquement être effectuée dans cette région. En ne bloquant pas le fournisseur de ressources à l’état d’inscription en cours, votre application peut poursuivre beaucoup plus tôt qu’en attendant la fin de l’inscription pour toutes les régions.

Vous devez être autorisé à effectuer l’opération /register/action pour le fournisseur de ressources. Cette autorisation est incluse dans les rôles Contributeur et Propriétaire.

Vous ne pouvez pas annuler l’inscription d’un fournisseur de ressources quand vous avez encore des types de ressources de ce fournisseur de ressources dans votre abonnement.

Réinscrivez un fournisseur de ressources lorsque le fournisseur de ressources prend en charge les nouveaux emplacements que vous devez utiliser.

Portail Azure

S’inscrire auprès du fournisseur de ressources

Pour afficher tous les fournisseurs de ressources et l'état d'inscription de votre abonnement :

  1. Connectez-vous au portail Azure.

  2. Dans le menu du portail Azure, recherchez Abonnements. Sélectionnez-le parmi les options disponibles.

    Capture d’écran de la recherche d’abonnements dans le portail Azure.

  3. Sélectionnez l’abonnement que vous souhaitez afficher.

  4. Dans le menu de gauche, sous Paramètres, sélectionnez Fournisseurs de ressources.

    Capture d’écran de la sélection des fournisseurs de ressources dans le portail Azure.

  5. Recherchez le fournisseur de ressources que vous souhaitez inscrire.

    Capture d’écran de la recherche des fournisseurs de ressources dans le portail Azure.

  6. Sélectionnez le fournisseur de ressources pour afficher les détails du fournisseur de ressources.

    Capture d’écran des détails du fournisseur de ressources dans le portail Azure.

  7. Sélectionnez le fournisseur de ressources puis sélectionnez Inscrire. Pour conserver les privilèges minimaux dans votre abonnement, inscrivez uniquement les fournisseurs de ressources que vous êtes prêt à utiliser.

    Capture d’écran de l’inscription d’un fournisseur de ressources dans le portail Azure.

    Important

    Comme indiqué précédemment, ne bloquez pas la création de ressources pour un fournisseur de ressources qui est en cours d’inscription. En ne bloquant pas le fournisseur de ressources à l’état d’inscription en cours, votre application peut poursuivre beaucoup plus tôt qu’en attendant la fin de l’inscription pour toutes les régions.

  8. Réinscrivez un fournisseur de ressources pour utiliser les emplacements qui ont été ajoutés depuis l’inscription précédente.

    Capture d’écran de la réinscription d’un fournisseur de ressources dans le portail Azure.

Afficher un fournisseur de ressources

Pour afficher des informations pour un fournisseur de ressources particulier :

  1. Connectez-vous au portail Azure.

  2. Dans le menu du portail Azure, sélectionnez Tous les services.

  3. Dans la zone Tous les services, entrez Explorateur de ressources, puis sélectionnez Explorateur de ressources.

    Capture d’écran de la sélection de tous les services dans le portail Azure pour accéder à l’explorateur de ressources.

  4. Développez Fournisseurs en sélectionnant la flèche droite.

    Capture d’écran de l’expansion de la section Fournisseurs dans Azure Resource Explorer.

  5. Développez le fournisseur de ressources et le type de ressource que vous souhaitez afficher.

  6. Resource Manager est pris en charge dans toutes les régions, mais il est possible que certaines ressources que vous déployez ne soient pas prises en charge dans toutes les régions. En outre, il peut y avoir des limitations sur votre abonnement qui vous empêchent d’utiliser certaines régions prenant en charge la ressource. L’Explorateur de ressources affiche les emplacements valides pour le type de ressource.

    Capture d’écran affichant les emplacements valides d’un type de ressource dans Azure Resource Explorer.

  7. La version d'API correspond à une version des opérations de l'API REST du fournisseur de ressources. Lorsqu'un fournisseur de ressources active de nouvelles fonctionnalités, une nouvelle version de l'API REST sera publiée. L’Explorateur de ressources affiche les versions d’API valides pour le type de ressource.

    Capture d’écran affichant les versions d’API valides d’un type de ressource dans Azure Resource Explorer.

Azure PowerShell

Pour afficher tous les fournisseurs de ressources dans Azure et l’état de l’inscription de votre abonnement, utilisez :

Get-AzResourceProvider -ListAvailable | Select-Object ProviderNamespace, RegistrationState

Cette commande renvoie :

ProviderNamespace                RegistrationState
-------------------------------- ------------------
Microsoft.ClassicCompute         Registered
Microsoft.ClassicNetwork         Registered
Microsoft.ClassicStorage         Registered
Microsoft.CognitiveServices      Registered
...

Pour afficher tous les fournisseurs de ressources inscrits pour votre abonnement, utilisez la commande suivante :

 Get-AzResourceProvider -ListAvailable | Where-Object RegistrationState -eq "Registered" | Select-Object ProviderNamespace, RegistrationState | Sort-Object ProviderNamespace

Pour conserver les privilèges minimaux dans votre abonnement, inscrivez uniquement les fournisseurs de ressources que vous êtes prêt à utiliser. Pour inscrire un fournisseur de ressources, utilisez :

Register-AzResourceProvider -ProviderNamespace Microsoft.Batch

Cette commande renvoie :

ProviderNamespace : Microsoft.Batch
RegistrationState : Registering
ResourceTypes     : {batchAccounts, operations, locations, locations/quotas}
Locations         : {West Europe, East US, East US 2, West US...}

Important

Comme indiqué précédemment, ne bloquez pas la création de ressources pour un fournisseur de ressources qui est en cours d’inscription. En ne bloquant pas le fournisseur de ressources à l’état d’inscription en cours, votre application peut poursuivre beaucoup plus tôt qu’en attendant la fin de l’inscription pour toutes les régions.

Réinscrivez un fournisseur de ressources pour utiliser les emplacements qui ont été ajoutés depuis l’inscription précédente. Pour vous réinscrire, réexécutez la commande d’inscription.

Pour afficher des informations pour un fournisseur de ressources particulier, utilisez :

Get-AzResourceProvider -ProviderNamespace Microsoft.Batch

Cette commande renvoie :

{ProviderNamespace : Microsoft.Batch
RegistrationState : Registered
ResourceTypes     : {batchAccounts}
Locations         : {West Europe, East US, East US 2, West US...}

...

Pour afficher les types de ressources pour un fournisseur de ressources, utilisez :

(Get-AzResourceProvider -ProviderNamespace Microsoft.Batch).ResourceTypes.ResourceTypeName

Cette commande renvoie :

batchAccounts
operations
locations
locations/quotas

La version d'API correspond à une version des opérations de l'API REST du fournisseur de ressources. Lorsqu'un fournisseur de ressources active de nouvelles fonctionnalités, une nouvelle version de l'API REST sera publiée.

Pour obtenir les versions d’API disponibles pour un type de ressource, utilisez :

((Get-AzResourceProvider -ProviderNamespace Microsoft.Batch).ResourceTypes | Where-Object ResourceTypeName -eq batchAccounts).ApiVersions

Cette commande renvoie :

2023-05-01
2022-10-01
2022-06-01
2022-01-01
2021-06-01
2021-01-01
...

Resource Manager est pris en charge dans toutes les régions, mais il est possible que certaines ressources que vous déployez ne soient pas prises en charge dans toutes les régions. En outre, il peut y avoir des limitations sur votre abonnement qui vous empêchent d’utiliser certaines régions prenant en charge la ressource.

Pour obtenir les emplacements pris en charge pour un type de ressource, utilisez :

((Get-AzResourceProvider -ProviderNamespace Microsoft.Batch).ResourceTypes | Where-Object ResourceTypeName -eq batchAccounts).Locations

Cette commande renvoie :

West Europe
East US
East US 2
West US
...

Azure CLI

Pour afficher tous les fournisseurs de ressources dans Azure et l’état de l’inscription de votre abonnement, utilisez :

az provider list --query "[].{Provider:namespace, Status:registrationState}" --out table

Cette commande renvoie :

Provider                         Status
-------------------------------- ----------------
Microsoft.ClassicCompute         Registered
Microsoft.ClassicNetwork         Registered
Microsoft.ClassicStorage         Registered
Microsoft.CognitiveServices      Registered
...

Pour afficher tous les fournisseurs de ressources inscrits pour votre abonnement, utilisez la commande suivante :

az provider list --query "sort_by([?registrationState=='Registered'].{Provider:namespace, Status:registrationState}, &Provider)" --out table

Pour conserver les privilèges minimaux dans votre abonnement, inscrivez uniquement les fournisseurs de ressources que vous êtes prêt à utiliser. Pour inscrire un fournisseur de ressources, utilisez :

az provider register --namespace Microsoft.Batch

La commande retourne un message indiquant que l’inscription est en cours.

Pour afficher des informations pour un fournisseur de ressources particulier, utilisez :

az provider show --namespace Microsoft.Batch

Cette commande renvoie :

{
    "id": "/subscriptions/####-####/providers/Microsoft.Batch",
    "namespace": "Microsoft.Batch",
    "registrationsState": "Registering",
    "resourceTypes:" [
        ...
    ]
}

Important

Comme indiqué précédemment, ne bloquez pas la création de ressources pour un fournisseur de ressources qui est en cours d’inscription. En ne bloquant pas le fournisseur de ressources à l’état d’inscription en cours, votre application peut poursuivre beaucoup plus tôt qu’en attendant la fin de l’inscription pour toutes les régions.

Pour afficher les types de ressources pour un fournisseur de ressources, utilisez :

az provider show --namespace Microsoft.Batch --query "resourceTypes[*].resourceType" --out table

Cette commande renvoie :

Result
---------------
batchAccounts
operations
locations
locations/quotas

La version d'API correspond à une version des opérations de l'API REST du fournisseur de ressources. Lorsqu'un fournisseur de ressources active de nouvelles fonctionnalités, une nouvelle version de l'API REST sera publiée.

Pour obtenir les versions d’API disponibles pour un type de ressource, utilisez :

az provider show --namespace Microsoft.Batch --query "resourceTypes[?resourceType=='batchAccounts'].apiVersions | [0]" --out table

Cette commande renvoie :

Result
---------------
2023-05-01
2022-10-01
2022-06-01
2022-01-01
...

Resource Manager est pris en charge dans toutes les régions, mais il est possible que certaines ressources que vous déployez ne soient pas prises en charge dans toutes les régions. En outre, il peut y avoir des limitations sur votre abonnement qui vous empêchent d’utiliser certaines régions prenant en charge la ressource.

Pour obtenir les emplacements pris en charge pour un type de ressource, utilisez :

az provider show --namespace Microsoft.Batch --query "resourceTypes[?resourceType=='batchAccounts'].locations | [0]" --out table

Cette commande renvoie :

Result
---------------
West Europe
East US
East US 2
West US
...

Python

Pour afficher tous les fournisseurs de ressources dans Azure et l’état de l’inscription de votre abonnement, utilisez :

import os  
from azure.identity import DefaultAzureCredential  
from azure.mgmt.resource import ResourceManagementClient  
  
# Authentication  
credential = DefaultAzureCredential()  
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]  
  
# Initialize Resource Management client  
resource_management_client = ResourceManagementClient(credential, subscription_id)  
  
# List available resource providers and select ProviderNamespace and RegistrationState  
providers = resource_management_client.providers.list()  
  
for provider in providers:  
    print(f"ProviderNamespace: {provider.namespace}, RegistrationState: {provider.registration_state}")  

Cette commande renvoie :

ProviderNamespace: Microsoft.AlertsManagement, RegistrationState: Registered
ProviderNamespace: Microsoft.AnalysisServices, RegistrationState: Registered
ProviderNamespace: Microsoft.ApiManagement, RegistrationState: Registered
ProviderNamespace: Microsoft.Authorization, RegistrationState: Registered
ProviderNamespace: Microsoft.Batch, RegistrationState: Registered
...

Pour afficher tous les fournisseurs de ressources inscrits pour votre abonnement, utilisez la commande suivante :

# List available resource providers with RegistrationState "Registered" and select ProviderNamespace and RegistrationState  
providers = resource_management_client.providers.list()  
registered_providers = [provider for provider in providers if provider.registration_state == "Registered"]  
  
# Sort by ProviderNamespace  
sorted_registered_providers = sorted(registered_providers, key=lambda x: x.namespace)  
  
for provider in sorted_registered_providers:  
    print(f"ProviderNamespace: {provider.namespace}, RegistrationState: {provider.registration_state}")  

Pour conserver les privilèges minimaux dans votre abonnement, inscrivez uniquement les fournisseurs de ressources que vous êtes prêt à utiliser. Pour inscrire un fournisseur de ressources, utilisez :

import os  
from azure.identity import DefaultAzureCredential  
from azure.mgmt.resource import ResourceManagementClient  
  
# Authentication  
credential = DefaultAzureCredential()  
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]  
  
# Initialize Resource Management client  
resource_management_client = ResourceManagementClient(credential, subscription_id)  
  
# Register resource provider  
provider_namespace = "Microsoft.Batch"  
registration_result = resource_management_client.providers.register(provider_namespace)  
  
print(f"ProviderNamespace: {registration_result.namespace}, RegistrationState: {registration_result.registration_state}")  

Cette commande renvoie :

ProviderNamespace: Microsoft.Batch, RegistrationState: Registered

Important

Comme indiqué précédemment, ne bloquez pas la création de ressources pour un fournisseur de ressources qui est en cours d’inscription. En ne bloquant pas le fournisseur de ressources à l’état d’inscription en cours, votre application peut poursuivre beaucoup plus tôt qu’en attendant la fin de l’inscription pour toutes les régions.

Réinscrivez un fournisseur de ressources pour utiliser les emplacements qui ont été ajoutés depuis l’inscription précédente. Pour vous réinscrire, réexécutez la commande d’inscription.

Pour afficher des informations pour un fournisseur de ressources particulier, utilisez :

import os  
from azure.identity import DefaultAzureCredential  
from azure.mgmt.resource import ResourceManagementClient  
  
# Authentication  
credential = DefaultAzureCredential()  
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]  
  
# Initialize Resource Management client  
resource_management_client = ResourceManagementClient(credential, subscription_id)  
  
# Get resource provider by ProviderNamespace  
provider_namespace = "Microsoft.Batch"  
provider = resource_management_client.providers.get(provider_namespace)  
  
print(f"ProviderNamespace: {provider.namespace}, RegistrationState: {provider.registration_state}\n")  
  
# Add resource types, locations, and API versions with new lines to separate results  
for resource_type in provider.resource_types:  
    print(f"ResourceType: {resource_type.resource_type}\nLocations: {', '.join(resource_type.locations)}\nAPIVersions: {', '.join(resource_type.api_versions)}\n")  

Cette commande renvoie :

ProviderNamespace: Microsoft.Batch, RegistrationState: Registered

ResourceType: batchAccounts
Locations: West Europe, East US, East US 2, West US, North Central US, Brazil South, North Europe, Central US, East Asia, Japan East, Australia Southeast, Japan West, Korea South, Korea Central, Southeast Asia, South Central US, Australia East, Jio India West, South India, Central India, West India, Canada Central, Canada East, UK South, UK West, West Central US, West US 2, France Central, South Africa North, UAE North, Australia Central, Germany West Central, Switzerland North, Norway East, Brazil Southeast, West US 3, Sweden Central, Qatar Central, Poland Central, East US 2 EUAP, Central US EUAP
APIVersions: 2023-05-01, 2022-10-01, 2022-06-01, 2022-01-01, 2021-06-01, 2021-01-01, 2020-09-01, 2020-05-01, 2020-03-01-preview, 2020-03-01, 2019-08-01, 2019-04-01, 2018-12-01, 2017-09-01, 2017-05-01, 2017-01-01, 2015-12-01, 2015-09-01, 2015-07-01, 2014-05-01-privatepreview

...

Pour afficher les types de ressources pour un fournisseur de ressources, utilisez :

# Get resource provider by ProviderNamespace  
provider_namespace = "Microsoft.Batch"  
provider = resource_management_client.providers.get(provider_namespace)  
  
# Get ResourceTypeName of the resource types  
resource_type_names = [resource_type.resource_type for resource_type in provider.resource_types]  
  
for resource_type_name in resource_type_names:  
    print(resource_type_name)  

Cette commande renvoie :

batchAccounts
batchAccounts/pools
batchAccounts/detectors
batchAccounts/certificates
operations
locations
locations/quotas
locations/checkNameAvailability
locations/accountOperationResults
locations/virtualMachineSkus
locations/cloudServiceSkus

La version d'API correspond à une version des opérations de l'API REST du fournisseur de ressources. Lorsqu'un fournisseur de ressources active de nouvelles fonctionnalités, une nouvelle version de l'API REST sera publiée.

Pour obtenir les versions d’API disponibles pour un type de ressource, utilisez :

# Get resource provider by ProviderNamespace  
provider_namespace = "Microsoft.Batch"  
provider = resource_management_client.providers.get(provider_namespace)  
  
# Filter resource type by ResourceTypeName and get its ApiVersions  
resource_type_name = "batchAccounts"  
api_versions = [  
    resource_type.api_versions  
    for resource_type in provider.resource_types  
    if resource_type.resource_type == resource_type_name  
]  
  
for api_version in api_versions[0]:  
    print(api_version)  

Cette commande renvoie :

2023-05-01
2022-10-01
2022-06-01
2022-01-01
...

Resource Manager est pris en charge dans toutes les régions, mais il est possible que certaines ressources que vous déployez ne soient pas prises en charge dans toutes les régions. En outre, il peut y avoir des limitations sur votre abonnement qui vous empêchent d’utiliser certaines régions prenant en charge la ressource.

Pour obtenir les emplacements pris en charge pour un type de ressource, utilisez :

# Get resource provider by ProviderNamespace  
provider_namespace = "Microsoft.Batch"  
provider = resource_management_client.providers.get(provider_namespace)  
  
# Filter resource type by ResourceTypeName and get its Locations  
resource_type_name = "batchAccounts"  
locations = [  
    resource_type.locations  
    for resource_type in provider.resource_types  
    if resource_type.resource_type == resource_type_name  
]  
  
for location in locations[0]:  
    print(location)  

Cette commande renvoie :

West Europe
East US
East US 2
West US
...

Étapes suivantes