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:
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 onder Instellingen in het menu links de optie Resourceproviders.
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 zo min mogelijk 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. Door een resourceprovider in de registratiestatus niet te blokkeren, kan uw toepassing veel sneller doorgaan dan te wachten tot alle regio's zijn voltooid.
Registreer een resourceprovider opnieuw om locaties te gebruiken die sinds de vorige registratie zijn toegevoegd.
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.
Vouw Providers uit door de pijl-rechts te selecteren.
Vouw een resourceprovider en 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 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.
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.
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 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. 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
- Zie Azure Resource Manager-sjablonen maken voor meer informatie over het maken van Resource Manager-sjablonen.
- Zie sjabloonverwijzing om de schema's van de resourceprovidersjabloon 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.