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:
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å menyn till vänster går du till Inställningar och väljer 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. För att behålla minsta privilegier i din prenumeration, registrera bara de resursleverantörer 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. 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.
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 i Azure-portalen.
I rutan Alla tjänster anger du resursutforskaren och väljer sedan Resursutforskaren.
Expandera Providers genom att välja högerpilen.
Expandera en resursprovider och resurstyp 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. Resursutforskaren 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. Resursutforskaren 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. 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
- Mer information om hur du skapar Resource Manager-mallar finns i Redigera Azure Resource Manager-mallar.
- Information om hur du visar scheman för resursprovidermallar finns i Mallreferens.
- 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.