Поставщики и типы ресурсов Azure
Поставщик ресурсов Azure — это набор операций REST, поддерживающих функциональные возможности конкретной службы Azure. Например, служба 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 автоматически регистрирует других поставщиков ресурсов. При создании ресурса в портал Azure портал обычно регистрирует поставщика ресурсов. При развертывании шаблона Azure Resource Manager или Bicep-файла Azure автоматически регистрирует поставщиков ресурсов, определенных в шаблоне. Иногда ресурс в шаблоне требует вспомогательных ресурсов, которые не в шаблоне. Распространенными примерами являются мониторинг или ресурсы безопасности. Необходимо вручную зарегистрировать этих поставщиков ресурсов.
Может потребоваться вручную зарегистрировать поставщика ресурсов во время других сценариев.
Внимание
Код приложения не должен блокировать создание ресурсов для поставщика ресурсов , который находится в состоянии регистрации . При регистрации поставщика ресурсов операция выполняется отдельно для каждого поддерживаемого региона. Для создания ресурсов в регионе необходимо выполнить регистрацию только в этом регионе. Если приложение не блокирует поставщик ресурсов в состоянии регистрации, оно может продолжаться раньше, чем ожидать завершения всех регионов.
Для выполнения действия /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...}
Внимание
Как отмечалось ранее, не блокируйте создание ресурсов для поставщика ресурсов , который находится в состоянии регистрации . Если приложение не блокирует поставщик ресурсов в состоянии регистрации, оно может продолжаться раньше, чем ожидать завершения всех регионов.
Чтобы использовать расположения, добавленные Azure с момента предыдущей регистрации, снова зарегистрируйте поставщика ресурсов. Чтобы повторно зарегистрировать, снова выполните команду регистрации.
Чтобы просмотреть сведения для конкретного поставщика ресурсов, используйте команду ниже:
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
Внимание
Как отмечалось ранее, не блокируйте создание ресурсов для поставщика ресурсов , который находится в состоянии регистрации . Если приложение не блокирует поставщик ресурсов в состоянии регистрации, оно может продолжаться раньше, чем ожидать завершения всех регионов.
Повторно зарегистрируйте поставщика ресурсов для использования расположений, добавленных 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)
# 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 см. в статье Описание структуры и синтаксиса шаблонов ARM.
- Сведения о схемах шаблонов для поставщиков ресурсов см. в разделе "Определение ресурсов" с помощью Bicep, шаблонов ARM и поставщика Terraform AzAPI.
- Список поставщиков ресурсов для служб Azure см. в статье Поставщики ресурсов для служб Azure.
- Чтобы просмотреть операции для поставщика ресурсов, ознакомьтесь с Azure REST API.