Udostępnij za pośrednictwem


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:

  1. Zaloguj się w witrynie Azure Portal.

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

    Zrzut ekranu przedstawiający wyszukiwanie subskrypcji w witrynie Azure Portal.

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

  4. W menu po lewej stronie i w obszarze Ustawienia wybierz pozycję Dostawcy zasobów.

    Zrzut ekranu przedstawiający wybieranie dostawców zasobów w witrynie Azure Portal.

  5. Znajdź dostawcę zasobów, który chcesz zarejestrować.

    Zrzut ekranu przedstawiający znajdowanie dostawców zasobów w witrynie Azure Portal.

  6. Wybierz dostawcę zasobów, aby wyświetlić szczegóły dostawcy zasobów.

    Zrzut ekranu przedstawiający szczegóły dostawcy zasobów w witrynie Azure Portal.

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

    Zrzut ekranu przedstawiający rejestrowanie dostawcy zasobów w witrynie Azure Portal.

    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.

  8. Zarejestruj ponownie dostawcę zasobów, aby użyć dodanych lokalizacji od poprzedniej rejestracji.

    Zrzut ekranu przedstawiający ponowne wyrejestrowanie dostawcy zasobów w witrynie 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. Wybierz pozycję Wszystkie usługi w menu witryny Azure Portal.

  3. W polu Wszystkie usługi wprowadź Eksplorator zasobów i wybierz pozycję Eksplorator zasobów.

    Zrzut ekranu przedstawiający wybieranie pozycji Wszystkie usługi w witrynie Azure Portal w celu uzyskania dostępu do Eksploratora zasobów platformy Azure.

  4. Wybierz strzałkę w prawo, aby rozwinąć pozycję Dostawcy.

    Zrzut ekranu przedstawiający rozwinięcie sekcji Dostawcy w Eksploratorze zasobów.

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

  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.

    Zrzut ekranu przedstawiający wyświetlanie prawidłowych lokalizacji dla typu zasobu w Eksploratorze zasobów.

  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.

    Zrzut ekranu przedstawiający wyświetlanie prawidłowych wersji interfejsu API dla typu zasobu w Eksploratorze zasobów.

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