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:
Meld u aan bij het Azure-portaal.
Zoek in het menu Azure Portal naar Abonnementen. Selecteer Tags bij de beschikbare opties.
Selecteer het abonnement dat u wilt bekijken.
Selecteer resourceproviders in het linkermenu en onder Instellingen.
Zoek de resourceprovider die u wilt registreren.
Selecteer de resourceprovider om de details van de resourceprovider weer te geven.
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.
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.
Registreer een resourceprovider opnieuw om locaties te gebruiken die u hebt toegevoegd sinds de vorige registratie.
Resourceprovider weergeven
Informatie voor een bepaalde resourceprovider weergeven:
Meld u aan bij het Azure-portaal.
Selecteer Alle services in het menu van Azure Portal.
Voer resourceverkenner in het vak Alle services in en selecteer Resource Explorer.
Selecteer de pijl-rechts om Providers uit te vouwen.
Vouw de resourceprovider en het resourcetype uit die u wilt weergeven.
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.
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.
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
- Zie De structuur en syntaxis van ARM-sjablonen begrijpen voor meer informatie over het maken van Resource Manager-sjablonen.
- Zie Resources definiƫren met Bicep-, ARM-sjablonen en Terraform AzAPI-provider om de sjabloonschema's voor resourceproviders weer te geven.
- Zie Resourceproviders voor Azure-services voor een lijst die resourceproviders toe wijst aan Azure-services.
- Zie De Azure REST API om de bewerkingen voor een resourceprovider weer te geven.