Azure-resourceproviders en -typen

Een Azure-resourceprovider is een set REST-bewerkingen die functionaliteit voor een specifieke Azure-service inschakelen. De Key Vault-service bestaat bijvoorbeeld uit een resourceprovider met de naam Microsoft.KeyVault. De resourceprovider definieert REST-bewerkingen voor het beheren van kluizen, geheimen, sleutels en certificaten.

De resourceprovider definieert de Azure-resources die u in uw account kunt implementeren. De naam van een resourcetype volgt de indeling: {resource-provider}/{resource-type}. Het resourcetype voor een sleutelkluis is Microsoft.keyvault\vaults.

In dit artikel leert u het volgende:

  • Alle resourceproviders in Azure weergeven
  • De registratiestatus van een resourceprovider controleren
  • Registreer een resourceprovider
  • Resourcetypen voor een resourceprovider weergeven
  • Geldige locaties voor een resourcetype weergeven
  • Geldige API-versies voor een resourcetype weergeven

Zie Resourceproviders voor Azure-services voor een lijst die resourceproviders toe wijst aan Azure-services.

Resourceprovider registreren

Voordat u een resourceprovider gebruikt, moet u ervoor zorgen dat uw Azure-abonnement is geregistreerd voor de resourceprovider. Registratie configureert uw abonnement om te werken met de resourceprovider.

Belangrijk

Registreer een resourceprovider alleen wanneer u klaar bent om deze te gebruiken. Met deze registratiestap kunt u de minste bevoegdheden binnen uw abonnement behouden. Een kwaadwillende gebruiker kan geen niet-geregistreerde resourceproviders gebruiken.

Het registreren van onnodige resourceproviders kan ertoe leiden dat niet-herkende apps worden weergegeven in uw Microsoft Entra-tenant. Microsoft voegt de app voor een resourceprovider toe wanneer u deze registreert. Deze apps worden doorgaans toegevoegd door de Windows Azure Service Management-API. Als u onnodige apps in uw tenant wilt voorkomen, registreert u alleen de benodigde resourceproviders.

Sommige resourceproviders zijn standaard geregistreerd. Zie Resourceproviders voor Azure-services voor een lijst met standaard geregistreerde resourceproviders.

Andere resourceproviders worden automatisch geregistreerd wanneer u bepaalde acties uitvoert. Wanneer u een resource maakt via de portal, wordt de resourceprovider doorgaans voor u geregistreerd. Wanneer u een Azure Resource Manager-sjabloon of Bicep-bestand implementeert, worden resourceproviders die in de sjabloon zijn gedefinieerd, automatisch geregistreerd. Soms vereist een resource in de sjabloon ondersteunende resources die niet in de sjabloon staan. Veelvoorkomende voorbeelden zijn bewakings- of beveiligingsbronnen. U moet deze resourceproviders handmatig registreren.

Voor andere scenario's moet u mogelijk handmatig een resourceprovider registreren.

Belangrijk

Uw toepassingscode mag het maken van resources niet blokkeren voor een resourceprovider die de registratiestatus heeft. Wanneer u de resourceprovider registreert, wordt de bewerking afzonderlijk uitgevoerd voor elke ondersteunde regio. Als u resources in een regio wilt maken, hoeft de registratie alleen in die regio te worden voltooid. Door een resourceprovider in de registratiestatus niet te blokkeren, kan uw toepassing veel sneller doorgaan dan te wachten tot alle regio's zijn voltooid.

U moet gemachtigd zijn om de bewerking voor de /register/action resourceprovider uit te voeren. De machtiging is opgenomen in de rollen Inzender en Eigenaar.

U kunt de registratie van een resourceprovider niet ongedaan maken wanneer u nog steeds resourcetypen van die resourceprovider in uw abonnement hebt.

Een resourceprovider opnieuw registreren wanneer de resourceprovider nieuwe locaties ondersteunt die u moet gebruiken.

Azure Portal

Resourceprovider registreren

Alle resourceproviders en de registratiestatus voor uw abonnement weergeven:

  1. Meld u aan bij de Azure-portal.

  2. Zoek in het menu Azure Portal naar Abonnementen. Selecteer Tags bij de beschikbare opties.

    Screenshot of searching for subscriptions in the Azure portal.

  3. Selecteer het abonnement dat u wilt bekijken.

    Screenshot of selecting a subscription in the Azure portal.

  4. Selecteer onder Instellingen in het menu links de optie Resourceproviders.

    Screenshot of selecting resource providers in the Azure portal.

  5. Zoek de resourceprovider die u wilt registreren en selecteer Registreren. Als u zo min mogelijk bevoegdheden in uw abonnement wilt behouden, registreert u alleen de resourceproviders die u wilt gebruiken.

    Screenshot of registering a resource provider in the Azure portal.

    Belangrijk

    Zoals eerder vermeld, blokkeert u het maken van resources niet voor een resourceprovider die de registratiestatus heeft. Door een resourceprovider in de registratiestatus niet te blokkeren, kan uw toepassing veel sneller doorgaan dan te wachten tot alle regio's zijn voltooid.

  6. Registreer een resourceprovider opnieuw om locaties te gebruiken die sinds de vorige registratie zijn toegevoegd.

    Screenshot of reregistering a resource provider in the Azure portal.

Resourceprovider weergeven

Informatie voor een bepaalde resourceprovider weergeven:

  1. Meld u aan bij de Azure-portal.

  2. Selecteer Alle services in het menu van Azure Portal.

  3. Voer resourceverkenner in het vak Alle services in en selecteer Resource Explorer.

    Screenshot of selecting All services in the Azure portal to access Resource Explorer.

  4. Vouw Providers uit door de pijl-rechts te selecteren.

    Screenshot of expanding the Providers section in the Azure Resource Explorer.

  5. Vouw een resourceprovider en resourcetype uit die u wilt weergeven.

    Screenshot of expanding a resource provider and resource type in the Azure Resource Explorer.

  6. Resource Manager wordt ondersteund in alle regio's, maar de resources die u implementeert, worden mogelijk niet ondersteund in alle regio's. Er zijn ook beperkingen voor uw abonnement die verhinderen dat u bepaalde regio's gebruikt die ondersteuning bieden voor de resource. In resourceverkenner worden geldige locaties voor het resourcetype weergegeven.

    Screenshot of displaying valid locations for a resource type in the Azure Resource Explorer.

  7. De API-versie komt overeen met een versie van de REST API-bewerkingen van de resourceprovider. Als resourceprovider nieuwe functies inschakelt, wordt er een nieuwe versie van de REST API uitgebracht. In resourceverkenner worden geldige API-versies voor het resourcetype weergegeven.

    Screenshot of displaying valid API versions for a resource type in the Azure Resource Explorer.

Azure PowerShell

Als u alle resourceproviders in Azure en de registratiestatus voor uw abonnement wilt zien, gebruikt u:

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

De opdracht retourneert:

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

Als u alle geregistreerde resourceproviders voor uw abonnement wilt zien, gebruikt u:

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

Als u zo min mogelijk bevoegdheden in uw abonnement wilt behouden, registreert u alleen de resourceproviders die u wilt gebruiken. Om een resourceprovider te registreren, gebruikt u:

Register-AzResourceProvider -ProviderNamespace Microsoft.Batch

De opdracht retourneert:

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

Belangrijk

Zoals eerder vermeld, blokkeert u het maken van resources niet voor een resourceprovider die de registratiestatus heeft. Door een resourceprovider in de registratiestatus niet te blokkeren, kan uw toepassing veel sneller doorgaan dan te wachten tot alle regio's zijn voltooid.

Registratie van een resourceprovider opnieuw voor het gebruik van locaties die sinds de vorige registratie zijn toegevoegd. Als u de registratie opnieuw wilt registreren, voert u de registratieopdracht opnieuw uit.

Als u informatie voor een bepaalde resourceprovider wilt zien, gebruikt u:

Get-AzResourceProvider -ProviderNamespace Microsoft.Batch

De opdracht retourneert:

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

...

Als u de resourcetypen voor een resourceprovider wilt zien, gebruikt u:

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

De opdracht retourneert:

batchAccounts
operations
locations
locations/quotas

De API-versie komt overeen met een versie van de REST API-bewerkingen van de resourceprovider. Als resourceprovider nieuwe functies inschakelt, wordt er een nieuwe versie van de REST API uitgebracht.

Als u de beschikbare API-versies voor een resourcetype wilt ophalen, gebruikt u:

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

De opdracht retourneert:

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

Resource Manager wordt ondersteund in alle regio's, maar de resources die u implementeert, worden mogelijk niet ondersteund in alle regio's. Er zijn ook beperkingen voor uw abonnement die verhinderen dat u bepaalde regio's gebruikt die ondersteuning bieden voor de resource.

Gebruik dit om de ondersteunde locaties voor een resourcetype op te halen.

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

De opdracht retourneert:

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

Azure-CLI

Als u alle resourceproviders in Azure en de registratiestatus voor uw abonnement wilt zien, gebruikt u:

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

De opdracht retourneert:

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

Als u alle geregistreerde resourceproviders voor uw abonnement wilt zien, gebruikt u:

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

Als u zo min mogelijk bevoegdheden in uw abonnement wilt behouden, registreert u alleen de resourceproviders die u wilt gebruiken. Om een resourceprovider te registreren, gebruikt u:

az provider register --namespace Microsoft.Batch

De opdracht retourneert een bericht dat de registratie bezig is.

Als u informatie voor een bepaalde resourceprovider wilt zien, gebruikt u:

az provider show --namespace Microsoft.Batch

De opdracht retourneert:

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

Belangrijk

Zoals eerder vermeld, blokkeert u het maken van resources niet voor een resourceprovider die de registratiestatus heeft. Door een resourceprovider in de registratiestatus niet te blokkeren, kan uw toepassing veel sneller doorgaan dan te wachten tot alle regio's zijn voltooid.

Als u de resourcetypen voor een resourceprovider wilt zien, gebruikt u:

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

De opdracht retourneert:

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

De API-versie komt overeen met een versie van de REST API-bewerkingen van de resourceprovider. Als resourceprovider nieuwe functies inschakelt, wordt er een nieuwe versie van de REST API uitgebracht.

Als u de beschikbare API-versies voor een resourcetype wilt ophalen, gebruikt u:

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

De opdracht retourneert:

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

Resource Manager wordt ondersteund in alle regio's, maar de resources die u implementeert, worden mogelijk niet ondersteund in alle regio's. Er zijn ook beperkingen voor uw abonnement die verhinderen dat u bepaalde regio's gebruikt die ondersteuning bieden voor de resource.

Gebruik dit om de ondersteunde locaties voor een resourcetype op te halen.

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

De opdracht retourneert:

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

Python

Als u alle resourceproviders in Azure en de registratiestatus voor uw abonnement wilt zien, gebruikt u:

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}")  

De opdracht retourneert:

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
...

Als u alle geregistreerde resourceproviders voor uw abonnement wilt zien, gebruikt u:

# 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}")  

Als u zo min mogelijk bevoegdheden in uw abonnement wilt behouden, registreert u alleen de resourceproviders die u wilt gebruiken. Om een resourceprovider te registreren, gebruikt u:

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}")  

De opdracht retourneert:

ProviderNamespace: Microsoft.Batch, RegistrationState: Registered

Belangrijk

Zoals eerder vermeld, blokkeert u het maken van resources niet voor een resourceprovider die de registratiestatus heeft. Door een resourceprovider in de registratiestatus niet te blokkeren, kan uw toepassing veel sneller doorgaan dan te wachten tot alle regio's zijn voltooid.

Registratie van een resourceprovider opnieuw voor het gebruik van locaties die sinds de vorige registratie zijn toegevoegd. Als u de registratie opnieuw wilt registreren, voert u de registratieopdracht opnieuw uit.

Als u informatie voor een bepaalde resourceprovider wilt zien, gebruikt u:

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")  

De opdracht retourneert:

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

...

Als u de resourcetypen voor een resourceprovider wilt zien, gebruikt u:

# 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)  

De opdracht retourneert:

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

De API-versie komt overeen met een versie van de REST API-bewerkingen van de resourceprovider. Als resourceprovider nieuwe functies inschakelt, wordt er een nieuwe versie van de REST API uitgebracht.

Als u de beschikbare API-versies voor een resourcetype wilt ophalen, gebruikt u:

# 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)  

De opdracht retourneert:

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

Resource Manager wordt ondersteund in alle regio's, maar de resources die u implementeert, worden mogelijk niet ondersteund in alle regio's. Er zijn ook beperkingen voor uw abonnement die verhinderen dat u bepaalde regio's gebruikt die ondersteuning bieden voor de resource.

Gebruik dit om de ondersteunde locaties voor een resourcetype op te halen.

# 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)  

De opdracht retourneert:

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

Volgende stappen