Resursproviders och resurstyper i Azure

En Azure-resursprovider är en uppsättning REST-åtgärder som aktiverar funktioner för en specifik Azure-tjänst. 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 Resursprovidrar för Azure-tjänster.

Registrera resursprovider

Innan du använder en resursprovider måste du se till 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.

Registrering av onödiga resursprovidrar kan leda till att okända appar visas i din Microsoft Entra-klientorganisation. Microsoft lägger till appen för en resursprovider när du registrerar den. Dessa appar läggs vanligtvis till av Windows Azure Service Management-API:et. För att förhindra onödiga appar i klientorganisationen registrerar du endast nödvändiga resursprovidrar.

Vissa resursprovidrar är registrerade som standard. En lista över resursprovidrar som registrerats som standard finns i Resursprovidrar för Azure-tjänster.

Andra resursprovidrar registreras automatiskt när du vidtar vissa åtgärder. När du skapar en resurs via portalen registreras vanligtvis resursprovidern åt dig. När du distribuerar en Azure Resource Manager-mall eller Bicep-fil registreras resursprovidrar som definierats i mallen automatiskt. 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.

I andra scenarier kan du behöva registrera en resursprovider manuellt.

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. Genom att inte blockera en resursprovider i registreringstillståndet kan programmet fortsätta mycket 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 visar du alla resursprovidrar och registreringsstatusen för din prenumeration:

  1. Logga in på Azure-portalen.

  2. På Azure-portalens meny söker du efter Prenumerationer. Välj från de tillgängliga alternativen.

    Screenshot of searching for subscriptions in the Azure portal.

  3. Välj den prenumeration som du vill visa.

    Screenshot of selecting a subscription in the Azure portal.

  4. På menyn till vänster går du till Inställningar och väljer Resursprovidrar.

    Screenshot of selecting resource providers in the Azure portal.

  5. Leta upp den resursprovider som du vill registrera och välj Registrera. För att behålla minsta privilegier i din prenumeration, registrera bara de resursleverantörer som du är redo att använda.

    Screenshot of registering a resource provider in the Azure portal.

    Viktigt!

    Som tidigare nämnts ska du inte blockera skapandet av resurser för en resursprovider som är i registreringstillståndet. Genom att inte blockera en resursprovider i registreringstillståndet kan programmet fortsätta mycket tidigare än att vänta på att alla regioner ska slutföras.

  6. Registrera om en resursprovider för att använda platser som har lagts till sedan den tidigare registreringen.

    Screenshot of reregistering a resource provider in the Azure portal.

Visa resursprovider

Så här ser du information för en viss resursprovider:

  1. Logga in på Azure-portalen.

  2. Välj Alla tjänster på menyn i Azure-portalen.

  3. I rutan Alla tjänster anger du resursutforskaren och väljer sedan Resursutforskaren.

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

  4. Expandera Providers genom att välja högerpilen.

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

  5. Expandera en resursprovider och resurstyp som du vill visa.

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

  6. 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. Resursutforskaren visar giltiga platser för resurstypen.

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

  7. 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. Resursutforskaren visar giltiga API-versioner för resurstypen.

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

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. Genom att inte blockera en resursprovider i registreringstillståndet kan programmet fortsätta mycket tidigare än att vänta på att alla regioner ska slutföras.

Registrera om en resursprovider för att använda platser som har lagts 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:

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. Genom att inte blockera en resursprovider i registreringstillståndet kan programmet fortsätta mycket 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. Genom att inte blockera en resursprovider i registreringstillståndet kan programmet fortsätta mycket tidigare än att vänta på att alla regioner ska slutföras.

Registrera om en resursprovider för att använda platser som har lagts 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