Dostawcy i typy zasobów platformy Azure
Dostawca zasobów platformy Azure to zestaw operacji REST, które umożliwiają korzystanie z funkcji dla określonej usługi platformy Azure. Na przykład usługa 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świetlanie wszystkich dostawców zasobów na platformie Azure
- Sprawdzanie stanu rejestracji dostawcy zasobów
- Rejestrowanie dostawcy 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 dla usług 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.
Zarejestrowanie niepotrzebnych dostawców zasobów może spowodować pojawienie się nierozpoznanych aplikacji w dzierżawie firmy Microsoft Entra. Firma Microsoft dodaje aplikację dla dostawcy zasobów podczas jej rejestrowania. Te aplikacje są zwykle dodawane przez interfejs API zarządzania usługami platformy Windows Azure. Aby zapobiec niepotrzebnym aplikacjom w dzierżawie, zarejestruj tylko wymaganych dostawców zasobów.
Niektórzy dostawcy zasobów są domyślnie zarejestrowani. Aby uzyskać listę dostawców zasobów zarejestrowanych domyślnie, zobacz Dostawcy zasobów dla usług platformy Azure.
Inni dostawcy zasobów są rejestrowani automatycznie podczas wykonywania określonych akcji. Podczas tworzenia zasobu za pośrednictwem portalu dostawca zasobów jest zwykle zarejestrowany. Podczas wdrażania szablonu usługi Azure Resource Manager lub pliku Bicep dostawcy zasobów zdefiniowani w szablonie są automatycznie zarejestrowani. 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.
W przypadku innych scenariuszy może być konieczne ręczne zarejestrowanie dostawcy zasobów.
Ważne
Kod aplikacji nie powinien blokować tworzenia zasobów dla dostawcy zasobów, który znajduje się 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. Nie blokując dostawcy zasobów w stanie rejestracji, aplikacja może być kontynuowana znacznie 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, w obszarze Ustawienia wybierz opcję 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ć ja najmniej uprawnień w subskrypcji, zarejestruj tylko tych dostawców zasobów, których zamierzasz używać.
Ważne
Jak wspomniano wcześniej, nie blokuj tworzenia zasobów dla dostawcy zasobów, który znajduje się w stanie rejestracji . Nie blokując dostawcy zasobów w stanie rejestracji, aplikacja może być kontynuowana znacznie wcześniej niż oczekiwanie na ukończenie wszystkich regionów.
Zarejestruj ponownie dostawcę zasobów, aby użyć lokalizacji, które zostały dodane 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.
W menu witryny Azure Portal wybierz pozycję Wszystkie usługi.
W polu Wszystkie usługi wprowadź eksplorator zasobów, a następnie wybierz pozycję Eksplorator zasobów.
Rozwiń węzeł Dostawcy , wybierając strzałkę w prawo.
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 . Nie blokując dostawcy zasobów w stanie rejestracji, aplikacja może być kontynuowana znacznie wcześniej niż oczekiwanie na ukończenie wszystkich regionów.
Ponownie wyrejestruj dostawcę zasobów, aby użyć lokalizacji, które zostały dodane od poprzedniej rejestracji. 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 polecenia .
((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 . Nie blokując dostawcy zasobów w stanie rejestracji, aplikacja może być kontynuowana znacznie 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 polecenia .
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 . Nie blokując dostawcy zasobów w stanie rejestracji, aplikacja może być kontynuowana znacznie wcześniej niż oczekiwanie na ukończenie wszystkich regionów.
Ponownie wyrejestruj dostawcę zasobów, aby użyć lokalizacji, które zostały dodane 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 polecenia .
# 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 Tworzenie szablonów usługi Azure Resource Manager.
- Aby wyświetlić schematy szablonów dostawcy zasobów, zobacz Dokumentacja szablonu.
- 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.