Поставщики и типы ресурсов Azure

Поставщик ресурсов Azure — это набор операций REST, которые обеспечивают функциональные возможности для определенной службы Azure. Например, служба Key Vault состоит из поставщика ресурсов с именем Microsoft.KeyVault. Поставщик ресурсов определяет операции REST для управления хранилищами, секретами, ключами и сертификатами.

Поставщик ресурсов определяет ресурсы Azure, которые можно развернуть в учетной записи. Имя типа ресурса соответствует формату : {resource-provider}/{resource-type}. Тип ресурса для хранилища ключей — Microsoft.KeyVault/vaults.

Вы узнаете, как выполнять следующие задачи:

  • просмотр всех поставщиков ресурсов в Azure;
  • проверка состояния регистрации поставщика ресурсов;
  • Регистрация поставщика ресурсов
  • просмотр типов ресурсов для поставщика ресурсов;
  • просмотр допустимых расположений для типа ресурса;
  • просмотр допустимых версий API для типа ресурса.

Список поставщиков ресурсов для служб Azure см. в статье Поставщики ресурсов для служб Azure.

Регистрация поставщика ресурсов

Перед использованием поставщика ресурсов необходимо убедиться, что подписка Azure зарегистрирована для поставщика ресурсов. В ходе регистрации настраиваются параметры вашей подписки для работы с поставщиком ресурсов.

Важно!

Регистрация поставщика ресурсов только в том случае, если вы будете готовы к использованию. Этот шаг регистрации помогает поддерживать минимальные привилегии в подписке. Злоумышленник не может использовать незарегистрированных поставщиков ресурсов.

Регистрация ненужных поставщиков ресурсов может привести к нераспознанным приложениям, отображаемым в клиенте Microsoft Entra. Корпорация Майкрософт добавляет приложение для поставщика ресурсов при регистрации. Обычно эти приложения добавляются API управления службами Windows Azure. Чтобы предотвратить ненужные приложения в клиенте, зарегистрируйте только необходимых поставщиков ресурсов.

Некоторые поставщики ресурсов зарегистрированы по умолчанию. Список поставщиков ресурсов, зарегистрированных по умолчанию, см. в статье Поставщики ресурсов для служб Azure.

Другие поставщики ресурсов регистрируются автоматически при выполнении определенных действий. При создании ресурса с помощью портала поставщик ресурсов обычно регистрируется для вас. При развертывании шаблона Azure Resource Manager или файла Bicep автоматически регистрируются определенные в нем поставщики ресурсов. Иногда ресурс в шаблоне требует вспомогательных ресурсов, которые не в шаблоне. Распространенными примерами являются мониторинг или ресурсы безопасности. Необходимо вручную зарегистрировать этих поставщиков ресурсов.

Для других сценариев может потребоваться зарегистрировать поставщик ресурсов вручную.

Важно!

Код приложения не должен блокировать создание ресурсов для поставщика ресурсов, который находится в состоянии регистрации. При регистрации поставщика ресурсов операция выполняется отдельно для каждого поддерживаемого региона. Для создания ресурсов в регионе необходимо выполнить регистрацию только в этом регионе. Если поставщик ресурсов не блокируется в состоянии регистрации, то ваше приложение сможет продолжить работу намного быстрее, чем в случае необходимости ожидания завершения операции всеми регионами.

Для выполнения действия /register/action для поставщика ресурса требуется наличие разрешения. Разрешение включено в роли "Участник" и "Владелец".

Невозможно отменить регистрацию поставщика ресурсов, если в вашей подписке еще есть типы ресурсов от этого поставщика ресурсов.

Повторно зарегистрируйте поставщика ресурсов, если поставщик ресурсов поддерживает новые расположения, которые необходимо использовать.

Портал Azure

Регистрация поставщика ресурсов

Чтобы просмотреть всех поставщиков ресурсов, а также состояние регистрации для подписки, сделайте следующее:

  1. Войдите на портал Azure.

  2. В меню "Портал Azure" найдите раздел Подписки. Выберите подходящий вариант из предложенных.

    Screenshot of searching for subscriptions in the Azure portal.

  3. Выберите подписку, которую нужно просмотреть.

    Screenshot of selecting a subscription in the Azure portal.

  4. В разделе Параметры выберите Поставщики ресурсов.

    Screenshot of selecting resource providers in the Azure portal.

  5. Найдите поставщик ресурсов, который хотите зарегистрировать, и нажмите кнопку Зарегистрировать. Для поддержания минимальных привилегий в подписке следует регистрировать поставщики только тех ресурсов, которые вы готовы использовать.

    Screenshot of registering a resource provider in the Azure portal.

    Важно!

    Как было отмечено выше, не блокируйте создание ресурсов для поставщика ресурсов, который находится в состоянии регистрации. Если поставщик ресурсов не блокируется в состоянии регистрации, то ваше приложение сможет продолжить работу намного быстрее, чем в случае необходимости ожидания завершения операции всеми регионами.

  6. Повторно зарегистрируйте поставщика ресурсов для использования расположений, добавленных с момента предыдущей регистрации.

    Screenshot of reregistering a resource provider in the Azure portal.

Просмотреть поставщик ресурса

Чтобы просмотреть сведения для конкретного поставщика ресурсов, сделайте следующее:

  1. Войдите на портал Azure.

  2. В меню портала Azure выберите Все службы.

  3. В поле Все службы введите обозреватель ресурсов и выберите Обозреватель ресурсов.

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

  4. Разверните список Поставщики, щелкнув стрелку вправо.

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

  5. Разверните поставщик ресурсов и тип ресурса, который вы хотите просмотреть.

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

  6. Диспетчер ресурсов поддерживается во всех регионах, однако развертываемые вами ресурсы могут поддерживаться не во всех регионах. Кроме того, у вашей подписки могут быть ограничения, которые не позволяют использовать некоторые регионы, поддерживающие ресурс. Обозреватель ресурсов отображает допустимые расположения для типа ресурса.

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

  7. Версия API соответствует версии операций REST API поставщика ресурсов. При появлении в поставщике ресурсов новых возможностей выпускается новая версия REST API. Обозреватель ресурсов отображает допустимые версии API для типа ресурса.

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

Azure PowerShell

Чтобы просмотреть всех поставщиков ресурсов в Azure, а также состояние регистрации для подписки, используйте команду ниже:

Get-AzResourceProvider -ListAvailable | Select-Object ProviderNamespace, RegistrationState

Эта команда возвращает следующее:

ProviderNamespace                RegistrationState
-------------------------------- ------------------
Microsoft.ClassicCompute         Registered
Microsoft.ClassicNetwork         Registered
Microsoft.ClassicStorage         Registered
Microsoft.CognitiveServices      Registered
...

Для просмотра зарегистрированных поставщиков ресурсов для вашей подписки воспользуйтесь:

 Get-AzResourceProvider -ListAvailable | Where-Object RegistrationState -eq "Registered" | Select-Object ProviderNamespace, RegistrationState | Sort-Object ProviderNamespace

Для поддержания минимальных привилегий в подписке следует регистрировать поставщики только тех ресурсов, которые вы готовы использовать. Чтобы зарегистрировать поставщик ресурсов, воспользуйтесь командой:

Register-AzResourceProvider -ProviderNamespace Microsoft.Batch

Эта команда возвращает следующее:

ProviderNamespace : Microsoft.Batch
RegistrationState : Registering
ResourceTypes     : {batchAccounts, operations, locations, locations/quotas}
Locations         : {West Europe, East US, East US 2, West US...}

Важно!

Как было отмечено выше, не блокируйте создание ресурсов для поставщика ресурсов, который находится в состоянии регистрации. Если поставщик ресурсов не блокируется в состоянии регистрации, то ваше приложение сможет продолжить работу намного быстрее, чем в случае необходимости ожидания завершения операции всеми регионами.

Повторно зарегистрируйте поставщика ресурсов для использования расположений, добавленных с момента предыдущей регистрации. Чтобы повторно зарегистрировать, снова выполните команду регистрации.

Чтобы просмотреть сведения для конкретного поставщика ресурсов, используйте команду ниже:

Get-AzResourceProvider -ProviderNamespace Microsoft.Batch

Эта команда возвращает следующее:

{ProviderNamespace : Microsoft.Batch
RegistrationState : Registered
ResourceTypes     : {batchAccounts}
Locations         : {West Europe, East US, East US 2, West US...}

...

Чтобы просмотреть типы ресурсов для поставщика ресурсов, используйте команду ниже:

(Get-AzResourceProvider -ProviderNamespace Microsoft.Batch).ResourceTypes.ResourceTypeName

Эта команда возвращает следующее:

batchAccounts
operations
locations
locations/quotas

Версия API соответствует версии операций REST API поставщика ресурсов. При появлении в поставщике ресурсов новых возможностей выпускается новая версия REST API.

Чтобы получить список доступных версий API для типа ресурса, используйте следующую команду:

((Get-AzResourceProvider -ProviderNamespace Microsoft.Batch).ResourceTypes | Where-Object ResourceTypeName -eq batchAccounts).ApiVersions

Эта команда возвращает следующее:

2023-05-01
2022-10-01
2022-06-01
2022-01-01
2021-06-01
2021-01-01
...

Диспетчер ресурсов поддерживается во всех регионах, однако развертываемые вами ресурсы могут поддерживаться не во всех регионах. Кроме того, у вашей подписки могут быть ограничения, которые не позволяют использовать некоторые регионы, поддерживающие ресурс.

Чтобы получить список поддерживаемых расположений для типа ресурса, используйте следующую команду:

((Get-AzResourceProvider -ProviderNamespace Microsoft.Batch).ResourceTypes | Where-Object ResourceTypeName -eq batchAccounts).Locations

Эта команда возвращает следующее:

West Europe
East US
East US 2
West US
...

Azure CLI

Чтобы просмотреть всех поставщиков ресурсов в Azure, а также состояние регистрации для подписки, используйте команду ниже:

az provider list --query "[].{Provider:namespace, Status:registrationState}" --out table

Эта команда возвращает следующее:

Provider                         Status
-------------------------------- ----------------
Microsoft.ClassicCompute         Registered
Microsoft.ClassicNetwork         Registered
Microsoft.ClassicStorage         Registered
Microsoft.CognitiveServices      Registered
...

Для просмотра зарегистрированных поставщиков ресурсов для вашей подписки воспользуйтесь:

az provider list --query "sort_by([?registrationState=='Registered'].{Provider:namespace, Status:registrationState}, &Provider)" --out table

Для поддержания минимальных привилегий в подписке следует регистрировать поставщики только тех ресурсов, которые вы готовы использовать. Чтобы зарегистрировать поставщик ресурсов, воспользуйтесь командой:

az provider register --namespace Microsoft.Batch

Эта команда возвращает сообщение о начале выполнения регистрации.

Чтобы просмотреть сведения для конкретного поставщика ресурсов, используйте команду ниже:

az provider show --namespace Microsoft.Batch

Эта команда возвращает следующее:

{
    "id": "/subscriptions/####-####/providers/Microsoft.Batch",
    "namespace": "Microsoft.Batch",
    "registrationsState": "Registering",
    "resourceTypes:" [
        ...
    ]
}

Важно!

Как было отмечено выше, не блокируйте создание ресурсов для поставщика ресурсов, который находится в состоянии регистрации. Если поставщик ресурсов не блокируется в состоянии регистрации, то ваше приложение сможет продолжить работу намного быстрее, чем в случае необходимости ожидания завершения операции всеми регионами.

Чтобы просмотреть типы ресурсов для поставщика ресурсов, используйте команду ниже:

az provider show --namespace Microsoft.Batch --query "resourceTypes[*].resourceType" --out table

Эта команда возвращает следующее:

Result
---------------
batchAccounts
operations
locations
locations/quotas

Версия API соответствует версии операций REST API поставщика ресурсов. При появлении в поставщике ресурсов новых возможностей выпускается новая версия REST API.

Чтобы получить список доступных версий API для типа ресурса, используйте следующую команду:

az provider show --namespace Microsoft.Batch --query "resourceTypes[?resourceType=='batchAccounts'].apiVersions | [0]" --out table

Эта команда возвращает следующее:

Result
---------------
2023-05-01
2022-10-01
2022-06-01
2022-01-01
...

Диспетчер ресурсов поддерживается во всех регионах, однако развертываемые вами ресурсы могут поддерживаться не во всех регионах. Кроме того, у вашей подписки могут быть ограничения, которые не позволяют использовать некоторые регионы, поддерживающие ресурс.

Чтобы получить список поддерживаемых расположений для типа ресурса, используйте следующую команду:

az provider show --namespace Microsoft.Batch --query "resourceTypes[?resourceType=='batchAccounts'].locations | [0]" --out table

Эта команда возвращает следующее:

Result
---------------
West Europe
East US
East US 2
West US
...

Python

Чтобы просмотреть всех поставщиков ресурсов в Azure, а также состояние регистрации для подписки, используйте команду ниже:

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}")  

Эта команда возвращает следующее:

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

Для просмотра зарегистрированных поставщиков ресурсов для вашей подписки воспользуйтесь:

# 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}")  

Для поддержания минимальных привилегий в подписке следует регистрировать поставщики только тех ресурсов, которые вы готовы использовать. Чтобы зарегистрировать поставщик ресурсов, воспользуйтесь командой:

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}")  

Эта команда возвращает следующее:

ProviderNamespace: Microsoft.Batch, RegistrationState: Registered

Важно!

Как было отмечено выше, не блокируйте создание ресурсов для поставщика ресурсов, который находится в состоянии регистрации. Если поставщик ресурсов не блокируется в состоянии регистрации, то ваше приложение сможет продолжить работу намного быстрее, чем в случае необходимости ожидания завершения операции всеми регионами.

Повторно зарегистрируйте поставщика ресурсов для использования расположений, добавленных с момента предыдущей регистрации. Чтобы повторно зарегистрировать, снова выполните команду регистрации.

Чтобы просмотреть сведения для конкретного поставщика ресурсов, используйте команду ниже:

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")  

Эта команда возвращает следующее:

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

...

Чтобы просмотреть типы ресурсов для поставщика ресурсов, используйте команду ниже:

# 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)  

Эта команда возвращает следующее:

batchAccounts
batchAccounts/pools
batchAccounts/detectors
batchAccounts/certificates
operations
locations
locations/quotas
locations/checkNameAvailability
locations/accountOperationResults
locations/virtualMachineSkus
locations/cloudServiceSkus

Версия API соответствует версии операций REST API поставщика ресурсов. При появлении в поставщике ресурсов новых возможностей выпускается новая версия REST API.

Чтобы получить список доступных версий API для типа ресурса, используйте следующую команду:

# 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)  

Эта команда возвращает следующее:

2023-05-01
2022-10-01
2022-06-01
2022-01-01
...

Диспетчер ресурсов поддерживается во всех регионах, однако развертываемые вами ресурсы могут поддерживаться не во всех регионах. Кроме того, у вашей подписки могут быть ограничения, которые не позволяют использовать некоторые регионы, поддерживающие ресурс.

Чтобы получить список поддерживаемых расположений для типа ресурса, используйте следующую команду:

# 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)  

Эта команда возвращает следующее:

West Europe
East US
East US 2
West US
...

Следующие шаги