Поставщики и типы ресурсов 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
Регистрация поставщика ресурсов
Чтобы просмотреть всех поставщиков ресурсов, а также состояние регистрации для подписки, сделайте следующее:
Войдите на портал Azure.
В меню "Портал Azure" найдите раздел Подписки. Выберите подходящий вариант из предложенных.
Выберите подписку, которую нужно просмотреть.
В разделе Параметры выберите Поставщики ресурсов.
Найдите поставщика ресурсов, который требуется зарегистрировать.
Выберите поставщика ресурсов, чтобы просмотреть сведения о поставщике ресурсов.
Выберите поставщика ресурсов и нажмите кнопку "Зарегистрировать". Для поддержания минимальных привилегий в подписке следует регистрировать поставщики только тех ресурсов, которые вы готовы использовать.
Внимание
Как было отмечено выше, не блокируйте создание ресурсов для поставщика ресурсов, который находится в состоянии регистрации. Если поставщик ресурсов не блокируется в состоянии регистрации, то ваше приложение сможет продолжить работу намного быстрее, чем в случае необходимости ожидания завершения операции всеми регионами.
Повторно зарегистрируйте поставщика ресурсов для использования расположений, добавленных с момента предыдущей регистрации.
Просмотреть поставщик ресурса
Чтобы просмотреть сведения для конкретного поставщика ресурсов, сделайте следующее:
Войдите на портал Azure.
В меню портала Azure выберите Все службы.
В поле Все службы введите обозреватель ресурсов и выберите Обозреватель ресурсов.
Разверните список Поставщики, щелкнув стрелку вправо.
Разверните поставщик ресурсов и тип ресурса, который вы хотите просмотреть.
Диспетчер ресурсов поддерживается во всех регионах, однако развертываемые вами ресурсы могут поддерживаться не во всех регионах. Кроме того, у вашей подписки могут быть ограничения, которые не позволяют использовать некоторые регионы, поддерживающие ресурс. Обозреватель ресурсов отображает допустимые расположения для типа ресурса.
Версия API соответствует версии операций REST API поставщика ресурсов. При появлении в поставщике ресурсов новых возможностей выпускается новая версия REST API. Обозреватель ресурсов отображает допустимые версии API для типа ресурса.
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
...
Следующие шаги
- Сведения о создании шаблонов Resource Manager см. в статье Создание шаблонов диспетчера ресурсов Azure.
- Схемы шаблонов поставщиков ресурсов см. в статье Define resources in Azure Resource Manager templates (Определение ресурсов в шаблонах Azure Resource Manager).
- Список поставщиков ресурсов для служб Azure см. в статье Поставщики ресурсов для служб Azure.
- Чтобы просмотреть операции для поставщика ресурсов, ознакомьтесь с Azure REST API.