Dela via


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:

  1. Logga in på Azure-portalen.

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

    Skärmbild av sökning efter prenumerationer i Azure Portal.

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

  4. På den vänstra menyn och under Inställningar väljer du Resursprovidrar.

    Skärmbild av att välja resursprovidrar i Azure Portal.

  5. Leta reda på den resursprovider som du vill registrera.

    Skärmbild av att hitta resursprovidrar i Azure Portal.

  6. Välj resursprovidern för att se information om resursprovidern.

    Skärmbild av information om resursprovidern i Azure Portal.

  7. 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.

    Skärmbild av registrering av en resursprovider i Azure Portal.

    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.

  8. Registrera om en resursprovider för att använda platser som du lade till sedan den tidigare registreringen.

    Skärmbild av omregistrering av en resursprovider i 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 Azure Portal.

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

    Skärmbild av att välja Alla tjänster i Azure Portal för att få åtkomst till Azure Resource Explorer.

  4. Välj högerpilen för att expandera Providers.

    Skärmbild av hur du expanderar avsnittet Providers i Resource Explorer.

  5. Expandera resursprovidern och resurstypen som du vill visa.

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

    Skärmbild av att visa giltiga platser för en resurstyp i 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. Resource Explorer visar giltiga API-versioner för resurstypen.

    Skärmbild av att visa giltiga API-versioner för en resurstyp i 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. 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