Delen via


Azure-resourceproviders en -typen

Een Azure-resourceprovider is een set REST-bewerkingen die functionaliteit voor een specifieke Azure-service ondersteunen. De Azure 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:

  • Bekijk alle resourceproviders in Azure.
  • Controleer de registratiestatus van een resourceprovider.
  • Registreer een resourceprovider.
  • Resourcetypen voor een resourceprovider weergeven.
  • Bekijk geldige locaties voor een resourcetype.
  • Bekijk geldige API-versies voor een resourcetype.

Zie Azure-resourceproviders en -typen 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.

Wanneer u een resourceprovider registreert, voegt Microsoft een app toe voor de resourceprovider. Het registreren van onnodige resourceproviders kan ertoe leiden dat apps die u niet herkent, worden weergegeven in uw Microsoft Entra-tenant. De Windows Azure Service Management-API voegt deze apps doorgaans toe. Als u onnodige apps in uw tenant wilt beperken, registreert u alleen de resourceproviders die u nodig hebt.

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

Wanneer u bepaalde acties uitvoert, registreert Azure automatisch andere resourceproviders. Wanneer u een resource maakt in Azure Portal, registreert de portal doorgaans de resourceprovider voor u. Wanneer u een Azure Resource Manager-sjabloon of Bicep-bestand implementeert, registreert Azure automatisch de resourceproviders die in de sjabloon zijn gedefinieerd. 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.

Mogelijk moet u een resourceprovider handmatig registreren tijdens andere scenario's.

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. Wanneer uw toepassing een resourceprovider niet blokkeert in de registratiestatus, kan deze sneller doorgaan dan wachten totdat 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

Als u alle resourceproviders en de registratiestatus voor uw abonnement wilt zien:

  1. Meld u aan bij het Azure-portaal.

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

    Schermopname van het zoeken naar abonnementen in Azure Portal.

  3. Selecteer het abonnement dat u wilt bekijken.

  4. Selecteer resourceproviders in het linkermenu en onder Instellingen.

    Schermopname van het selecteren van resourceproviders in Azure Portal.

  5. Zoek de resourceprovider die u wilt registreren.

    Schermopname van het vinden van resourceproviders in Azure Portal.

  6. Selecteer de resourceprovider om de details van de resourceprovider weer te geven.

    Schermopname van de details van de resourceprovider in Azure Portal.

  7. Selecteer de resourceprovider en selecteer Registreren. Als u de minste bevoegdheden in uw abonnement wilt behouden, registreert u alleen de resourceproviders die u wilt gebruiken.

    Schermopname van het registreren van een resourceprovider in Azure Portal.

    Belangrijk

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

  8. Registreer een resourceprovider opnieuw om locaties te gebruiken die u hebt toegevoegd sinds de vorige registratie.

    Schermopname van het opnieuw registreren van een resourceprovider in Azure Portal.

Resourceprovider weergeven

Informatie voor een bepaalde resourceprovider weergeven:

  1. Meld u aan bij het Azure-portaal.

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

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

    Schermopname van het selecteren van alle services in Azure Portal voor toegang tot Azure Resource Explorer.

  4. Selecteer de pijl-rechts om Providers uit te vouwen.

    Schermopname van het uitbreiden van de sectie Providers in Resource Explorer.

  5. Vouw de resourceprovider en het resourcetype uit die u wilt weergeven.

  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 mogelijk ook beperkingen voor uw abonnement die verhinderen dat u bepaalde regio's gebruikt die ondersteuning bieden voor de resource. Resource Explorer geeft geldige locaties weer voor het resourcetype.

    Schermopname van het weergeven van geldige locaties voor een resourcetype in 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. Resource Explorer geeft geldige API-versies weer voor het resourcetype.

    Schermopname van het weergeven van geldige API-versies voor een resourcetype in 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. Wanneer uw toepassing een resourceprovider niet blokkeert in de registratiestatus, kan deze sneller doorgaan dan wachten totdat alle regio's zijn voltooid.

Als u locaties wilt gebruiken die Azure sinds de vorige registratie heeft toegevoegd, moet u een resourceprovider opnieuw registreren. 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 mogelijk ook beperkingen voor uw abonnement die verhinderen dat u bepaalde regio's gebruikt die ondersteuning bieden voor de resource.

Als u de ondersteunde locaties voor een resourcetype wilt ophalen, gebruikt u:

((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 wordt uitgevoerd.

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. Wanneer uw toepassing een resourceprovider niet blokkeert in de registratiestatus, kan deze sneller doorgaan dan wachten totdat 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 mogelijk ook beperkingen voor uw abonnement die verhinderen dat u bepaalde regio's gebruikt die ondersteuning bieden voor de resource.

Als u de ondersteunde locaties voor een resourcetype wilt ophalen, gebruikt u:

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. Wanneer uw toepassing een resourceprovider niet blokkeert in de registratiestatus, kan deze sneller doorgaan dan wachten totdat alle regio's zijn voltooid.

Registratie van een resourceprovider opnieuw voor het gebruik van locaties die Azure sinds de vorige registratie heeft 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 mogelijk ook beperkingen voor uw abonnement die verhinderen dat u bepaalde regio's gebruikt die ondersteuning bieden voor de resource.

Als u de ondersteunde locaties 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 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