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:

  1. Zaloguj się w witrynie Azure Portal.

  2. W menu witryny Azure Portal wyszukaj pozycję Subskrypcje. Wybierz tagi z listy dostępnych opcji.

    Screenshot of searching for subscriptions in the Azure portal.

  3. Wybierz subskrypcję, którą chcesz wyświetlić.

    Screenshot of selecting a subscription in the Azure portal.

  4. W menu po lewej stronie, w obszarze Ustawienia wybierz opcję Dostawcy zasobów.

    Screenshot of selecting resource providers in the Azure portal.

  5. Znajdź dostawcę zasobów, który chcesz zarejestrować, 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ć.

    Screenshot of registering a resource provider in the Azure portal.

    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.

  6. Zarejestruj ponownie dostawcę zasobów, aby użyć lokalizacji, które zostały dodane od poprzedniej rejestracji.

    Screenshot of reregistering a resource provider in the Azure portal.

Wyświetlanie dostawcy zasobów

Aby wyświetlić informacje dotyczące określonego dostawcy zasobów:

  1. Zaloguj się w witrynie Azure Portal.

  2. W menu witryny Azure Portal wybierz pozycję Wszystkie usługi.

  3. W polu Wszystkie usługi wprowadź eksplorator zasobów, a następnie wybierz pozycję Eksplorator zasobów.

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

  4. Rozwiń węzeł Dostawcy , wybierając strzałkę w prawo.

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

  5. Rozwiń dostawcę zasobów i typ zasobu, który chcesz wyświetlić.

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

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

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

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

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

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 informujący o tym, że rejestracja trwa.

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.