Dostawcy i typy zasobów platformy Azure
Dostawca zasobów platformy Azure to zestaw operacji REST, które obsługują funkcje dla określonej usługi platformy Azure. Na przykład usługa Azure Key Vault składa się z dostawcy zasobów o nazwie Microsoft.KeyVault. Dostawca zasobów definiuje operacje REST na potrzeby zarządzania magazynami, wpisami tajnymi, kluczami i certyfikatami.
Dostawca zasobów definiuje zasoby platformy Azure, które można wdrożyć na koncie. Nazwa typu zasobu jest zgodna z formatem: {resource-provider}/{resource-type}. Typ zasobu dla magazynu kluczy to Microsoft.KeyVault/magazyny.
W tym artykule omówiono sposób wykonywania następujących zadań:
- Wyświetl wszystkich dostawców zasobów na platformie Azure.
- Sprawdź stan rejestracji dostawcy zasobów.
- Zarejestruj dostawcę zasobów.
- Wyświetlanie typów zasobów dla dostawcy zasobów.
- Wyświetlanie prawidłowych lokalizacji dla typu zasobu.
- Wyświetlanie prawidłowych wersji interfejsu API dla typu zasobu.
Aby uzyskać listę mapowania dostawców zasobów na usługi platformy Azure, zobacz Dostawcy zasobów i typy platformy Azure.
Rejestrowanie dostawcy zasobów
Przed użyciem dostawcy zasobów upewnij się, że subskrypcja platformy Azure jest zarejestrowana dla dostawcy zasobów. Rejestracja umożliwia skonfigurowanie subskrypcji do pracy z dostawcą zasobów.
Ważne
Zarejestruj dostawcę zasobów tylko wtedy, gdy wszystko będzie gotowe do użycia. Ten krok rejestracji pomaga zachować najmniejsze uprawnienia w ramach subskrypcji. Złośliwy użytkownik nie może używać niezarejestrowanych dostawców zasobów.
Po zarejestrowaniu dostawcy zasobów firma Microsoft dodaje aplikację dla dostawcy zasobów. Zarejestrowanie niepotrzebnych dostawców zasobów może spowodować, że aplikacje, które nie są rozpoznawane w dzierżawie firmy Microsoft Entra. Interfejs API zarządzania usługami platformy Windows Azure zwykle dodaje te aplikacje. Aby ograniczyć niepotrzebne aplikacje w dzierżawie, zarejestruj tylko potrzebnych dostawców zasobów.
Niektórzy dostawcy zasobów są domyślnie zarejestrowani. Aby zapoznać się z listą przykładów, zobacz Dostawcy zasobów dla usług platformy Azure.
Po podjęciu pewnych akcji platforma Azure automatycznie rejestruje innych dostawców zasobów. Podczas tworzenia zasobu w witrynie Azure Portal portal zazwyczaj rejestruje dostawcę zasobów. Podczas wdrażania szablonu usługi Azure Resource Manager lub pliku Bicep platforma Azure automatycznie rejestruje dostawców zasobów zdefiniowanych w szablonie. Czasami zasób w szablonie wymaga zasobów pomocniczych, które nie są w szablonie. Typowe przykłady to monitorowanie lub zasoby zabezpieczeń. Należy ręcznie zarejestrować tych dostawców zasobów.
Może być konieczne ręczne zarejestrowanie dostawcy zasobów w innych scenariuszach.
Ważne
Kod aplikacji nie powinien blokować tworzenia zasobów dla dostawcy zasobów w stanie rejestracji . Po zarejestrowaniu dostawcy zasobów operacja jest wykonywana indywidualnie dla każdego obsługiwanego regionu. Aby utworzyć zasoby w regionie, rejestracja musi zostać ukończona tylko w tym regionie. Jeśli aplikacja nie blokuje dostawcy zasobów w stanie rejestracji, może ona być kontynuowana wcześniej niż oczekiwanie na ukończenie wszystkich regionów.
Musisz mieć uprawnienia do wykonania /register/action
operacji dla dostawcy zasobów. Uprawnienie jest uwzględniane w rolach Współautor i Właściciel.
Nie można wyrejestrować dostawcy zasobów, jeśli nadal masz typy zasobów od tego dostawcy zasobów w ramach subskrypcji.
Ponownie wyrejestruj dostawcę zasobów, gdy dostawca zasobów obsługuje nowe lokalizacje, których należy użyć.
Azure Portal
Rejestrowanie dostawcy zasobów
Aby wyświetlić wszystkich dostawców zasobów i stan rejestracji subskrypcji:
Zaloguj się w witrynie Azure Portal.
W menu witryny Azure Portal wyszukaj pozycję Subskrypcje. Wybierz tagi z listy dostępnych opcji.
Wybierz subskrypcję, którą chcesz wyświetlić.
W menu po lewej stronie i w obszarze Ustawienia wybierz pozycję Dostawcy zasobów.
Znajdź dostawcę zasobów, który chcesz zarejestrować.
Wybierz dostawcę zasobów, aby wyświetlić szczegóły dostawcy zasobów.
Wybierz dostawcę zasobów, a następnie wybierz pozycję Zarejestruj. Aby zachować najmniejsze uprawnienia w ramach subskrypcji, zarejestruj tylko dostawców zasobów, których chcesz użyć.
Ważne
Jak wspomniano wcześniej, nie blokuj tworzenia zasobów dla dostawcy zasobów, który znajduje się w stanie rejestracji . Jeśli aplikacja nie blokuje dostawcy zasobów w stanie rejestracji, może ona być kontynuowana wcześniej niż oczekiwanie na ukończenie wszystkich regionów.
Zarejestruj ponownie dostawcę zasobów, aby użyć dodanych lokalizacji od poprzedniej rejestracji.
Wyświetlanie dostawcy zasobów
Aby wyświetlić informacje dotyczące określonego dostawcy zasobów:
Zaloguj się w witrynie Azure Portal.
Wybierz pozycję Wszystkie usługi w menu witryny Azure Portal.
W polu Wszystkie usługi wprowadź Eksplorator zasobów i wybierz pozycję Eksplorator zasobów.
Wybierz strzałkę w prawo, aby rozwinąć pozycję Dostawcy.
Rozwiń dostawcę zasobów i typ zasobu, który chcesz wyświetlić.
Usługa Resource Manager jest obsługiwana we wszystkich regionach, ale wdrożone zasoby mogą nie być obsługiwane we wszystkich regionach. Ponadto mogą istnieć ograniczenia dotyczące subskrypcji, które uniemożliwiają korzystanie z niektórych regionów obsługujących ten zasób. Eksplorator zasobów wyświetla prawidłowe lokalizacje dla typu zasobu.
Wersja interfejsu API odpowiada wersji operacji interfejsu API REST dostawcy zasobów. Jako dostawca zasobów włącza nowe funkcje, zwalnia nową wersję interfejsu API REST. Eksplorator zasobów wyświetla prawidłowe wersje interfejsu API dla typu zasobu.
Azure PowerShell
Aby wyświetlić wszystkich dostawców zasobów na platformie Azure i stan rejestracji subskrypcji, użyj:
Get-AzResourceProvider -ListAvailable | Select-Object ProviderNamespace, RegistrationState
Polecenie zwraca następujące polecenie:
ProviderNamespace RegistrationState
-------------------------------- ------------------
Microsoft.ClassicCompute Registered
Microsoft.ClassicNetwork Registered
Microsoft.ClassicStorage Registered
Microsoft.CognitiveServices Registered
...
Aby wyświetlić wszystkich zarejestrowanych dostawców zasobów dla subskrypcji, użyj:
Get-AzResourceProvider -ListAvailable | Where-Object RegistrationState -eq "Registered" | Select-Object ProviderNamespace, RegistrationState | Sort-Object ProviderNamespace
Aby zachować ja najmniej uprawnień w subskrypcji, zarejestruj tylko tych dostawców zasobów, których zamierzasz używać. Aby zarejestrować dostawcę zasobów, użyj:
Register-AzResourceProvider -ProviderNamespace Microsoft.Batch
Polecenie zwraca następujące polecenie:
ProviderNamespace : Microsoft.Batch
RegistrationState : Registering
ResourceTypes : {batchAccounts, operations, locations, locations/quotas}
Locations : {West Europe, East US, East US 2, West US...}
Ważne
Jak wspomniano wcześniej, nie blokuj tworzenia zasobów dla dostawcy zasobów, który znajduje się w stanie rejestracji . Jeśli aplikacja nie blokuje dostawcy zasobów w stanie rejestracji, może ona być kontynuowana wcześniej niż oczekiwanie na ukończenie wszystkich regionów.
Aby użyć lokalizacji dodanych przez platformę Azure od poprzedniej rejestracji, zarejestruj dostawcę zasobów ponownie. Aby ponownie wyrejestrować, uruchom ponownie polecenie rejestracji.
Aby wyświetlić informacje dotyczące określonego dostawcy zasobów, użyj:
Get-AzResourceProvider -ProviderNamespace Microsoft.Batch
Polecenie zwraca następujące polecenie:
{ProviderNamespace : Microsoft.Batch
RegistrationState : Registered
ResourceTypes : {batchAccounts}
Locations : {West Europe, East US, East US 2, West US...}
...
Aby wyświetlić typy zasobów dla dostawcy zasobów, użyj:
(Get-AzResourceProvider -ProviderNamespace Microsoft.Batch).ResourceTypes.ResourceTypeName
Polecenie zwraca następujące polecenie:
batchAccounts
operations
locations
locations/quotas
Wersja interfejsu API odpowiada wersji operacji interfejsu API REST dostawcy zasobów. Jako dostawca zasobów włącza nowe funkcje, zwalnia nową wersję interfejsu API REST.
Aby uzyskać dostępne wersje interfejsu API dla typu zasobu, użyj:
((Get-AzResourceProvider -ProviderNamespace Microsoft.Batch).ResourceTypes | Where-Object ResourceTypeName -eq batchAccounts).ApiVersions
Polecenie zwraca następujące polecenie:
2023-05-01
2022-10-01
2022-06-01
2022-01-01
2021-06-01
2021-01-01
...
Usługa Resource Manager jest obsługiwana we wszystkich regionach, ale wdrożone zasoby mogą nie być obsługiwane we wszystkich regionach. Ponadto mogą istnieć ograniczenia dotyczące subskrypcji, które uniemożliwiają korzystanie z niektórych regionów obsługujących ten zasób.
Aby uzyskać obsługiwane lokalizacje dla typu zasobu, użyj:
((Get-AzResourceProvider -ProviderNamespace Microsoft.Batch).ResourceTypes | Where-Object ResourceTypeName -eq batchAccounts).Locations
Polecenie zwraca następujące polecenie:
West Europe
East US
East US 2
West US
...
Interfejs wiersza polecenia platformy Azure
Aby wyświetlić wszystkich dostawców zasobów na platformie Azure i stan rejestracji subskrypcji, użyj:
az provider list --query "[].{Provider:namespace, Status:registrationState}" --out table
Polecenie zwraca następujące polecenie:
Provider Status
-------------------------------- ----------------
Microsoft.ClassicCompute Registered
Microsoft.ClassicNetwork Registered
Microsoft.ClassicStorage Registered
Microsoft.CognitiveServices Registered
...
Aby wyświetlić wszystkich zarejestrowanych dostawców zasobów dla subskrypcji, użyj:
az provider list --query "sort_by([?registrationState=='Registered'].{Provider:namespace, Status:registrationState}, &Provider)" --out table
Aby zachować ja najmniej uprawnień w subskrypcji, zarejestruj tylko tych dostawców zasobów, których zamierzasz używać. Aby zarejestrować dostawcę zasobów, użyj:
az provider register --namespace Microsoft.Batch
Polecenie zwraca komunikat, że rejestracja jest w toku.
Aby wyświetlić informacje dotyczące określonego dostawcy zasobów, użyj:
az provider show --namespace Microsoft.Batch
Polecenie zwraca następujące polecenie:
{
"id": "/subscriptions/####-####/providers/Microsoft.Batch",
"namespace": "Microsoft.Batch",
"registrationsState": "Registering",
"resourceTypes:" [
...
]
}
Ważne
Jak wspomniano wcześniej, nie blokuj tworzenia zasobów dla dostawcy zasobów, który znajduje się w stanie rejestracji . Jeśli aplikacja nie blokuje dostawcy zasobów w stanie rejestracji, może ona być kontynuowana wcześniej niż oczekiwanie na ukończenie wszystkich regionów.
Aby wyświetlić typy zasobów dla dostawcy zasobów, użyj:
az provider show --namespace Microsoft.Batch --query "resourceTypes[*].resourceType" --out table
Polecenie zwraca następujące polecenie:
Result
---------------
batchAccounts
operations
locations
locations/quotas
Wersja interfejsu API odpowiada wersji operacji interfejsu API REST dostawcy zasobów. Jako dostawca zasobów włącza nowe funkcje, zwalnia nową wersję interfejsu API REST.
Aby uzyskać dostępne wersje interfejsu API dla typu zasobu, użyj:
az provider show --namespace Microsoft.Batch --query "resourceTypes[?resourceType=='batchAccounts'].apiVersions | [0]" --out table
Polecenie zwraca następujące polecenie:
Result
---------------
2023-05-01
2022-10-01
2022-06-01
2022-01-01
...
Usługa Resource Manager jest obsługiwana we wszystkich regionach, ale wdrożone zasoby mogą nie być obsługiwane we wszystkich regionach. Ponadto mogą istnieć ograniczenia dotyczące subskrypcji, które uniemożliwiają korzystanie z niektórych regionów obsługujących ten zasób.
Aby uzyskać obsługiwane lokalizacje dla typu zasobu, użyj:
az provider show --namespace Microsoft.Batch --query "resourceTypes[?resourceType=='batchAccounts'].locations | [0]" --out table
Polecenie zwraca następujące polecenie:
Result
---------------
West Europe
East US
East US 2
West US
...
Python
Aby wyświetlić wszystkich dostawców zasobów na platformie Azure i stan rejestracji subskrypcji, użyj:
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}")
Polecenie zwraca następujące polecenie:
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
...
Aby wyświetlić wszystkich zarejestrowanych dostawców zasobów dla subskrypcji, użyj:
# 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}")
Aby zachować ja najmniej uprawnień w subskrypcji, zarejestruj tylko tych dostawców zasobów, których zamierzasz używać. Aby zarejestrować dostawcę zasobów, użyj:
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}")
Polecenie zwraca następujące polecenie:
ProviderNamespace: Microsoft.Batch, RegistrationState: Registered
Ważne
Jak wspomniano wcześniej, nie blokuj tworzenia zasobów dla dostawcy zasobów, który znajduje się w stanie rejestracji . Jeśli aplikacja nie blokuje dostawcy zasobów w stanie rejestracji, może ona być kontynuowana wcześniej niż oczekiwanie na ukończenie wszystkich regionów.
Ponownie wyrejestruj dostawcę zasobów, aby użyć lokalizacji dodanych przez platformę Azure od poprzedniej rejestracji. Aby ponownie wyrejestrować, uruchom ponownie polecenie rejestracji.
Aby wyświetlić informacje dotyczące określonego dostawcy zasobów, użyj:
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")
Polecenie zwraca następujące polecenie:
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
...
Aby wyświetlić typy zasobów dla dostawcy zasobów, użyj:
# 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)
Polecenie zwraca następujące polecenie:
batchAccounts
batchAccounts/pools
batchAccounts/detectors
batchAccounts/certificates
operations
locations
locations/quotas
locations/checkNameAvailability
locations/accountOperationResults
locations/virtualMachineSkus
locations/cloudServiceSkus
Wersja interfejsu API odpowiada wersji operacji interfejsu API REST dostawcy zasobów. Jako dostawca zasobów włącza nowe funkcje, zwalnia nową wersję interfejsu API REST.
Aby uzyskać dostępne wersje interfejsu API dla typu zasobu, użyj:
# 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)
Polecenie zwraca następujące polecenie:
2023-05-01
2022-10-01
2022-06-01
2022-01-01
...
Usługa Resource Manager jest obsługiwana we wszystkich regionach, ale wdrożone zasoby mogą nie być obsługiwane we wszystkich regionach. Ponadto mogą istnieć ograniczenia dotyczące subskrypcji, które uniemożliwiają korzystanie z niektórych regionów obsługujących ten zasób.
Aby uzyskać obsługiwane lokalizacje dla typu zasobu, użyj:
# 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)
Polecenie zwraca następujące polecenie:
West Europe
East US
East US 2
West US
...
Następne kroki
- Aby dowiedzieć się więcej na temat tworzenia szablonów usługi Resource Manager, zobacz Omówienie struktury i składni szablonów usługi ARM.
- Aby wyświetlić schematy szablonów dla dostawców zasobów, zobacz Definiowanie zasobów przy użyciu szablonów Bicep, szablonów usługi ARM i dostawcy AzAPI programu Terraform.
- Aby uzyskać listę mapowania dostawców zasobów na usługi platformy Azure, zobacz Dostawcy zasobów dla usług platformy Azure.
- Aby wyświetlić operacje dostawcy zasobów, zobacz Interfejs API REST platformy Azure.