Resursproviders och resurstyper i Azure
En Azure-resursprovider är en uppsättning REST-åtgärder som stöder funktioner för en specifik Azure-tjänst. Azure Key Vault-tjänsten består till exempel av en resursprovider med namnet Microsoft.KeyVault. Resursprovidern definierar REST-åtgärder för att hantera valv, hemligheter, nycklar och certifikat.
Resursprovidern definierar de Azure-resurser som du kan distribuera till ditt konto. Namnet på en resurstyp följer formatet: {resource-provider}/{resource-type}. Resurstypen för ett nyckelvalv är Microsoft.KeyVault\vaults.
I den här artikeln kan du se hur du:
- Visa alla resursprovidrar i Azure.
- Kontrollera registreringsstatus för en resursprovider.
- Registrera en resursprovider.
- Visa resurstyper för en resursprovider.
- Visa giltiga platser för en resurstyp.
- Visa giltiga API-versioner för en resurstyp.
En lista som mappar resursprovidrar till Azure-tjänster finns i Azure-resursprovidrar och typer.
Registrera resursprovider
Innan du använder en resursprovider kontrollerar du att din Azure-prenumeration är registrerad för resursprovidern. Registreringen konfigurerar din prenumeration så att den fungerar med resursprovidern.
Viktigt!
Registrera endast en resursprovider när du är redo att använda den. Det här registreringssteget hjälper dig att upprätthålla minsta möjliga behörighet i din prenumeration. En obehörig användare kan inte använda oregistrerade resursproviders.
När du registrerar en resursprovider lägger Microsoft till en app för resursprovidern. Om du registrerar onödiga resursprovidrar kan appar som du inte känner igen visas i din Microsoft Entra-klientorganisation. Windows Azure Service Management-API:et lägger vanligtvis till dessa appar. Om du vill begränsa onödiga appar i din klientorganisation registrerar du bara de resursprovidrar som du behöver.
Vissa resursprovidrar är registrerade som standard. En lista med exempel finns i Resursprovidrar för Azure-tjänster.
När du vidtar vissa åtgärder registrerar Azure automatiskt andra resursprovidrar. När du skapar en resurs i Azure Portal registrerar portalen vanligtvis resursprovidern åt dig. När du distribuerar en Azure Resource Manager-mall eller Bicep-fil registrerar Azure automatiskt de resursprovidrar som definierats i mallen. Ibland kräver en resurs i mallen stödresurser som inte finns i mallen. Vanliga exempel är övervaknings- eller säkerhetsresurser. Du måste registrera dessa resursprovidrar manuellt.
Du kan behöva registrera en resursprovider manuellt under andra scenarier.
Viktigt!
Programkoden bör inte blockera skapandet av resurser för en resursprovider som är i registreringstillståndet . När du registrerar resursprovidern utförs åtgärden individuellt för varje region som stöds. Om du vill skapa resurser i en region behöver registreringen bara slutföras i den regionen. När programmet inte blockerar en resursprovider i registreringstillståndet kan det fortsätta tidigare än att vänta på att alla regioner ska slutföras.
Du måste ha behörighet att utföra /register/action
åtgärden för resursprovidern. Behörigheten ingår i rollerna Deltagare och Ägare.
Du kan inte avregistrera en resursprovider när du fortfarande har resurstyper från den resursprovidern i din prenumeration.
Registrera en resursprovider igen när resursprovidern har stöd för nya platser som du behöver använda.
Azure Portal
Registrera resursprovider
Så här ser du alla resursprovidrar och registreringsstatus för din prenumeration:
Logga in på Azure-portalen.
På Azure-portalens meny söker du efter Prenumerationer. Välj från de tillgängliga alternativen.
Välj den prenumeration som du vill visa.
På den vänstra menyn och under Inställningar väljer du Resursprovidrar.
Leta reda på den resursprovider som du vill registrera.
Välj resursprovidern för att se information om resursprovidern.
Välj resursprovidern och välj Registrera. Om du vill behålla minsta möjliga behörighet i din prenumeration registrerar du bara de resursprovidrar som du är redo att använda.
Viktigt!
Som tidigare nämnts ska du inte blockera skapandet av resurser för en resursprovider som är i registreringstillståndet. När programmet inte blockerar en resursprovider i registreringstillståndet kan det fortsätta tidigare än att vänta på att alla regioner ska slutföras.
Registrera om en resursprovider för att använda platser som du lade till sedan den tidigare registreringen.
Visa resursprovider
Så här ser du information för en viss resursprovider:
Logga in på Azure-portalen.
Välj Alla tjänster på menyn Azure Portal.
I rutan Alla tjänster anger du resursutforskaren och väljer Resursutforskaren.
Välj högerpilen för att expandera Providers.
Expandera resursprovidern och resurstypen som du vill visa.
Resource Manager stöds i alla regioner, men de resurser som du distribuerar kanske inte stöds i alla regioner. Det kan också finnas begränsningar för din prenumeration som hindrar dig från att använda vissa regioner som stöder resursen. Resource Explorer visar giltiga platser för resurstypen.
API-versionen motsvarar en version av resursproviderns REST API-åtgärder. När en resursprovider aktiverar nya funktioner släpper den en ny version av REST-API:et. Resource Explorer visar giltiga API-versioner för resurstypen.
Azure PowerShell
Om du vill se alla resursprovidrar i Azure och registreringsstatusen för din prenumeration använder du:
Get-AzResourceProvider -ListAvailable | Select-Object ProviderNamespace, RegistrationState
Kommandot returnerar:
ProviderNamespace RegistrationState
-------------------------------- ------------------
Microsoft.ClassicCompute Registered
Microsoft.ClassicNetwork Registered
Microsoft.ClassicStorage Registered
Microsoft.CognitiveServices Registered
...
Om du vill se alla registrerade resursprovidrar för din prenumeration använder du:
Get-AzResourceProvider -ListAvailable | Where-Object RegistrationState -eq "Registered" | Select-Object ProviderNamespace, RegistrationState | Sort-Object ProviderNamespace
För att behålla minsta privilegier i din prenumeration, registrera bara de resursleverantörer som du är redo att använda. Så här registrerar du en resursåterförsäljare:
Register-AzResourceProvider -ProviderNamespace Microsoft.Batch
Kommandot returnerar:
ProviderNamespace : Microsoft.Batch
RegistrationState : Registering
ResourceTypes : {batchAccounts, operations, locations, locations/quotas}
Locations : {West Europe, East US, East US 2, West US...}
Viktigt!
Som tidigare nämnts ska du inte blockera skapandet av resurser för en resursprovider som är i registreringstillståndet. När programmet inte blockerar en resursprovider i registreringstillståndet kan det fortsätta tidigare än att vänta på att alla regioner ska slutföras.
Om du vill använda platser som Azure har lagt till sedan den tidigare registreringen registrerar du en resursprovider igen. Om du vill registrera om kör du registreringskommandot igen.
Om du vill se information för en viss resursprovider använder du:
Get-AzResourceProvider -ProviderNamespace Microsoft.Batch
Kommandot returnerar:
{ProviderNamespace : Microsoft.Batch
RegistrationState : Registered
ResourceTypes : {batchAccounts}
Locations : {West Europe, East US, East US 2, West US...}
...
Om du vill se resurstyperna för en resursprovider använder du:
(Get-AzResourceProvider -ProviderNamespace Microsoft.Batch).ResourceTypes.ResourceTypeName
Kommandot returnerar:
batchAccounts
operations
locations
locations/quotas
API-versionen motsvarar en version av resursproviderns REST API-åtgärder. När en resursprovider aktiverar nya funktioner släpper den en ny version av REST-API:et.
Om du vill hämta tillgängliga API-versioner för en resurstyp använder du:
((Get-AzResourceProvider -ProviderNamespace Microsoft.Batch).ResourceTypes | Where-Object ResourceTypeName -eq batchAccounts).ApiVersions
Kommandot returnerar:
2023-05-01
2022-10-01
2022-06-01
2022-01-01
2021-06-01
2021-01-01
...
Resource Manager stöds i alla regioner, men de resurser som du distribuerar kanske inte stöds i alla regioner. Det kan också finnas begränsningar för din prenumeration som hindrar dig från att använda vissa regioner som stöder resursen.
Om du vill hämta de platser som stöds för en resurstyp använder du:
((Get-AzResourceProvider -ProviderNamespace Microsoft.Batch).ResourceTypes | Where-Object ResourceTypeName -eq batchAccounts).Locations
Kommandot returnerar:
West Europe
East US
East US 2
West US
...
Azure CLI
Om du vill se alla resursprovidrar i Azure och registreringsstatusen för din prenumeration använder du:
az provider list --query "[].{Provider:namespace, Status:registrationState}" --out table
Kommandot returnerar:
Provider Status
-------------------------------- ----------------
Microsoft.ClassicCompute Registered
Microsoft.ClassicNetwork Registered
Microsoft.ClassicStorage Registered
Microsoft.CognitiveServices Registered
...
Om du vill se alla registrerade resursprovidrar för din prenumeration använder du:
az provider list --query "sort_by([?registrationState=='Registered'].{Provider:namespace, Status:registrationState}, &Provider)" --out table
För att behålla minsta privilegier i din prenumeration, registrera bara de resursleverantörer som du är redo att använda. Så här registrerar du en resursåterförsäljare:
az provider register --namespace Microsoft.Batch
Kommandot returnerar ett meddelande om att registreringen pågår.
Om du vill se information för en viss resursprovider använder du:
az provider show --namespace Microsoft.Batch
Kommandot returnerar:
{
"id": "/subscriptions/####-####/providers/Microsoft.Batch",
"namespace": "Microsoft.Batch",
"registrationsState": "Registering",
"resourceTypes:" [
...
]
}
Viktigt!
Som tidigare nämnts ska du inte blockera skapandet av resurser för en resursprovider som är i registreringstillståndet. När programmet inte blockerar en resursprovider i registreringstillståndet kan det fortsätta tidigare än att vänta på att alla regioner ska slutföras.
Om du vill se resurstyperna för en resursprovider använder du:
az provider show --namespace Microsoft.Batch --query "resourceTypes[*].resourceType" --out table
Kommandot returnerar:
Result
---------------
batchAccounts
operations
locations
locations/quotas
API-versionen motsvarar en version av resursproviderns REST API-åtgärder. När en resursprovider aktiverar nya funktioner släpper den en ny version av REST-API:et.
Om du vill hämta tillgängliga API-versioner för en resurstyp använder du:
az provider show --namespace Microsoft.Batch --query "resourceTypes[?resourceType=='batchAccounts'].apiVersions | [0]" --out table
Kommandot returnerar:
Result
---------------
2023-05-01
2022-10-01
2022-06-01
2022-01-01
...
Resource Manager stöds i alla regioner, men de resurser som du distribuerar kanske inte stöds i alla regioner. Det kan också finnas begränsningar för din prenumeration som hindrar dig från att använda vissa regioner som stöder resursen.
Om du vill hämta de platser som stöds för en resurstyp använder du:
az provider show --namespace Microsoft.Batch --query "resourceTypes[?resourceType=='batchAccounts'].locations | [0]" --out table
Kommandot returnerar:
Result
---------------
West Europe
East US
East US 2
West US
...
Python
Om du vill se alla resursprovidrar i Azure och registreringsstatusen för din prenumeration använder du:
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}")
Kommandot returnerar:
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
...
Om du vill se alla registrerade resursprovidrar för din prenumeration använder du:
# 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}")
För att behålla minsta privilegier i din prenumeration, registrera bara de resursleverantörer som du är redo att använda. Så här registrerar du en resursåterförsäljare:
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}")
Kommandot returnerar:
ProviderNamespace: Microsoft.Batch, RegistrationState: Registered
Viktigt!
Som tidigare nämnts ska du inte blockera skapandet av resurser för en resursprovider som är i registreringstillståndet. När programmet inte blockerar en resursprovider i registreringstillståndet kan det fortsätta tidigare än att vänta på att alla regioner ska slutföras.
Registrera om en resursprovider för att använda platser som Azure lade till sedan den tidigare registreringen. Om du vill registrera om kör du registreringskommandot igen.
Om du vill se information för en viss resursprovider använder du:
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")
Kommandot returnerar:
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
...
Om du vill se resurstyperna för en resursprovider använder du:
# 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)
Kommandot returnerar:
batchAccounts
batchAccounts/pools
batchAccounts/detectors
batchAccounts/certificates
operations
locations
locations/quotas
locations/checkNameAvailability
locations/accountOperationResults
locations/virtualMachineSkus
locations/cloudServiceSkus
API-versionen motsvarar en version av resursproviderns REST API-åtgärder. När en resursprovider aktiverar nya funktioner släpper den en ny version av REST-API:et.
Om du vill hämta tillgängliga API-versioner för en resurstyp använder du:
# 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)
Kommandot returnerar:
2023-05-01
2022-10-01
2022-06-01
2022-01-01
...
Resource Manager stöds i alla regioner, men de resurser som du distribuerar kanske inte stöds i alla regioner. Det kan också finnas begränsningar för din prenumeration som hindrar dig från att använda vissa regioner som stöder resursen.
Om du vill hämta de platser som stöds för en resurstyp använder du:
# 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)
Kommandot returnerar:
West Europe
East US
East US 2
West US
...
Nästa steg
- Mer information om hur du skapar Resource Manager-mallar finns i Förstå strukturen och syntaxen för ARM-mallar.
- Information om hur du visar mallscheman för resursprovidrar finns i Definiera resurser med Bicep, ARM-mallar och Terraform AzAPI-provider.
- En lista som mappar resursprovidrar till Azure-tjänster finns i Resursprovidrar för Azure-tjänster.
- Information om hur du visar åtgärder för en resursprovider finns i Azure REST API.