Tipos e provedores de recursos do Azure
Um provedor de recursos do Azure é um conjunto de operações REST que oferecem suporte à funcionalidade de um serviço específico do Azure. Por exemplo, o serviço Azure Key Vault consiste em um provedor de recursos chamado Microsoft.KeyVault. O provedor de recursos define operações REST para gerenciar cofres, segredos, chaves e certificados.
O provedor de recursos define os recursos do Azure que você pode implantar em sua conta. O nome de um tipo de recurso segue o formato: {resource-provider}/{resource-type}. O tipo de recurso de um cofre de chaves é Microsoft.KeyVault/vaults.
Neste artigo, você aprenderá como:
- Veja todos os provedores de recursos no Azure.
- Verifique o status de registro de um provedor de recursos.
- Registre um provedor de recursos.
- Exibir tipos de recursos para um provedor de recursos.
- Exibir locais válidos para um tipo de recurso.
- Visualize versões de API válidas para um tipo de recurso.
Para obter uma lista que mapeia provedores de recursos para serviços do Azure, veja Provedores e tipos de recursos do Azure.
Registrar provedor de recursos
Antes de usar um provedor de recursos, certifique-se de que sua assinatura do Azure esteja registrada para o provedor de recursos. O registro configura a assinatura para trabalhar com o provedor de recursos.
Importante
Registre um provedor de recursos somente quando estiver pronto para usá-lo. Essa etapa de registro ajuda a manter os privilégios mínimos na assinatura. Um usuário mal-intencionado não pode usar provedores de recursos não registrados.
Quando você registra um provedor de recursos, a Microsoft adiciona um aplicativo para o provedor de recursos. Registrar provedores de recursos desnecessários pode fazer com que aplicativos que você não reconhece apareçam no seu locatário do Microsoft Entra. A API de Gerenciamento de Serviços do Windows Azure normalmente adiciona esses aplicativos. Para limitar aplicativos desnecessários em seu locatário, registre apenas os provedores de recursos necessários.
Alguns provedores de recursos são registrados por padrão. Para obter uma lista de exemplos, veja Provedores de recursos para serviços do Azure.
Quando você realiza determinadas ações, o Azure registra automaticamente outros provedores de recursos. Quando você cria um recurso no portal do Azure, o portal normalmente registra o provedor de recursos para você. Quando você implanta um modelo do Azure Resource Manager ou um arquivo Bicep, o Azure registra automaticamente os provedores de recursos definidos no modelo. Às vezes, um recurso no modelo requer recursos de suporte que não estão no modelo. Exemplos comuns são recursos de monitoramento ou segurança. Você precisa registrar esses provedores de recursos manualmente.
Pode ser necessário registrar manualmente um provedor de recursos em outros cenários.
Importante
O código do seu aplicativo não deve bloquear a criação de recursos para um provedor de recursos que esteja no estado de registro. Quando você registra o provedor de recursos, a operação é feita individualmente para cada região com suporte. Para criar recursos em uma região, o registro precisa ser concluído apenas nessa região. Quando seu aplicativo não bloqueia um provedor de recursos no estado de registro, ele pode continuar antes de esperar a conclusão de todas as regiões.
Você deve ter permissão para realizar a operação /register/action
para o provedor de recursos. A permissão está incluída nas funções de Colaborador e de Proprietário.
Você não poderá cancelar o registro de um provedor de recursos enquanto ainda tiver tipos de recursos desse provedor de recursos na assinatura.
Registre novamente um provedor de recursos quando o provedor de recursos dá suporte a novos locais que você precisa usar.
Portal do Azure
Registrar provedor de recursos
Para ver todos os provedores de recursos e o status de registro da sua assinatura:
Entre no portal do Azure.
No menu do portal do Azure, procure Assinaturas. Selecione-as entre as opções disponíveis.
Selecione a assinatura que você deseja exibir.
No menu à esquerda e em Configurações, selecione Provedores de recursos.
Localize o provedor de recursos que você quer registrar.
Selecione o provedor de recursos para ver os detalhes do provedor de recursos.
Selecione o provedor de recursos e selecione Registrar. Para manter o mínimo de privilégios em sua assinatura, registre apenas os provedores de recursos que você está pronto para usar.
Importante
Conforme observado anteriormente, não bloqueie a criação de recursos para um provedor de recursos que esteja no estado de registro. Quando seu aplicativo não bloqueia um provedor de recursos no estado de registro, ele pode continuar antes de esperar a conclusão de todas as regiões.
Registre novamente um provedor de recursos para usar os locais que você adicionou desde o registro anterior.
Exibir o provedor de recursos
Para obter informações para um provedor de recursos específico:
Entre no portal do Azure.
Selecione Todos os serviços no menu do portal do Azure.
Na caixa Todos os serviços, digite explorador de recursos e selecione Gerenciador de Recursos.
Selecione a seta para a direita para expandir os Provedores.
Expanda o provedor de recursos e o tipo de recurso que você deseja visualizar.
O Gerenciador de Recursos tem suporte em todas as regiões, mas os recursos que você implanta talvez não tenham suporte em todas as regiões. Além disso, pode haver limitações na sua assinatura que o impeçam de usar algumas regiões que suportam o recurso. O Gerenciador de Recursos exibe locais válidos para o tipo de recurso.
A versão da API corresponde a uma versão das operações da API REST do provedor de recursos. Conforme um provedor de recursos habilita novos recursos, ele lança uma nova versão da API REST. O Gerenciador de Recursos exibe versões de API válidas para o tipo de recurso.
PowerShell do Azure
Para ver todos os provedores de recursos no Azure e o status de registro da sua assinatura, use:
Get-AzResourceProvider -ListAvailable | Select-Object ProviderNamespace, RegistrationState
O comando retorna:
ProviderNamespace RegistrationState
-------------------------------- ------------------
Microsoft.ClassicCompute Registered
Microsoft.ClassicNetwork Registered
Microsoft.ClassicStorage Registered
Microsoft.CognitiveServices Registered
...
Para conferir todos os provedores de recursos registrados para a assinatura, use:
Get-AzResourceProvider -ListAvailable | Where-Object RegistrationState -eq "Registered" | Select-Object ProviderNamespace, RegistrationState | Sort-Object ProviderNamespace
Para manter os privilégios mínimos na assinatura, registre apenas os provedores de recursos que você está pronto para usar. Para registrar um provedor de recursos, use:
Register-AzResourceProvider -ProviderNamespace Microsoft.Batch
O comando retorna:
ProviderNamespace : Microsoft.Batch
RegistrationState : Registering
ResourceTypes : {batchAccounts, operations, locations, locations/quotas}
Locations : {West Europe, East US, East US 2, West US...}
Importante
Conforme observado anteriormente, não bloqueie a criação de recursos para um provedor de recursos que esteja no estado de registro. Quando seu aplicativo não bloqueia um provedor de recursos no estado de registro, ele pode continuar antes de esperar a conclusão de todas as regiões.
Para usar locais que o Azure adicionou desde o registro anterior, registre um provedor de recursos novamente. Para registrar novamente, execute o comando de registro novamente.
Para obter informações para um provedor de recursos específico, use:
Get-AzResourceProvider -ProviderNamespace Microsoft.Batch
O comando retorna:
{ProviderNamespace : Microsoft.Batch
RegistrationState : Registered
ResourceTypes : {batchAccounts}
Locations : {West Europe, East US, East US 2, West US...}
...
Para ver os tipos de recurso para um provedor de recursos, use:
(Get-AzResourceProvider -ProviderNamespace Microsoft.Batch).ResourceTypes.ResourceTypeName
O comando retorna:
batchAccounts
operations
locations
locations/quotas
A versão da API corresponde a uma versão das operações da API REST do provedor de recursos. Conforme um provedor de recursos habilita novos recursos, ele lança uma nova versão da API REST.
Para obter versões de API disponíveis para um tipo de recurso, use:
((Get-AzResourceProvider -ProviderNamespace Microsoft.Batch).ResourceTypes | Where-Object ResourceTypeName -eq batchAccounts).ApiVersions
O comando retorna:
2023-05-01
2022-10-01
2022-06-01
2022-01-01
2021-06-01
2021-01-01
...
O Gerenciador de Recursos tem suporte em todas as regiões, mas os recursos que você implanta talvez não tenham suporte em todas as regiões. Além disso, pode haver limitações na sua assinatura que o impeçam de usar algumas regiões que suportam o recurso.
Para obter os locais suportados para um tipo de recurso, use:
((Get-AzResourceProvider -ProviderNamespace Microsoft.Batch).ResourceTypes | Where-Object ResourceTypeName -eq batchAccounts).Locations
O comando retorna:
West Europe
East US
East US 2
West US
...
CLI do Azure
Para ver todos os provedores de recursos no Azure e o status de registro da sua assinatura, use:
az provider list --query "[].{Provider:namespace, Status:registrationState}" --out table
O comando retorna:
Provider Status
-------------------------------- ----------------
Microsoft.ClassicCompute Registered
Microsoft.ClassicNetwork Registered
Microsoft.ClassicStorage Registered
Microsoft.CognitiveServices Registered
...
Para conferir todos os provedores de recursos registrados para a assinatura, use:
az provider list --query "sort_by([?registrationState=='Registered'].{Provider:namespace, Status:registrationState}, &Provider)" --out table
Para manter os privilégios mínimos na assinatura, registre apenas os provedores de recursos que você está pronto para usar. Para registrar um provedor de recursos, use:
az provider register --namespace Microsoft.Batch
O comando retorna uma mensagem informando que o registro está em andamento.
Para obter informações para um provedor de recursos específico, use:
az provider show --namespace Microsoft.Batch
O comando retorna:
{
"id": "/subscriptions/####-####/providers/Microsoft.Batch",
"namespace": "Microsoft.Batch",
"registrationsState": "Registering",
"resourceTypes:" [
...
]
}
Importante
Conforme observado anteriormente, não bloqueie a criação de recursos para um provedor de recursos que esteja no estado de registro. Quando seu aplicativo não bloqueia um provedor de recursos no estado de registro, ele pode continuar antes de esperar a conclusão de todas as regiões.
Para ver os tipos de recurso para um provedor de recursos, use:
az provider show --namespace Microsoft.Batch --query "resourceTypes[*].resourceType" --out table
O comando retorna:
Result
---------------
batchAccounts
operations
locations
locations/quotas
A versão da API corresponde a uma versão das operações da API REST do provedor de recursos. Conforme um provedor de recursos habilita novos recursos, ele lança uma nova versão da API REST.
Para obter versões de API disponíveis para um tipo de recurso, use:
az provider show --namespace Microsoft.Batch --query "resourceTypes[?resourceType=='batchAccounts'].apiVersions | [0]" --out table
O comando retorna:
Result
---------------
2023-05-01
2022-10-01
2022-06-01
2022-01-01
...
O Gerenciador de Recursos tem suporte em todas as regiões, mas os recursos que você implanta talvez não tenham suporte em todas as regiões. Além disso, pode haver limitações na sua assinatura que o impeçam de usar algumas regiões que suportam o recurso.
Para obter os locais suportados para um tipo de recurso, use:
az provider show --namespace Microsoft.Batch --query "resourceTypes[?resourceType=='batchAccounts'].locations | [0]" --out table
O comando retorna:
Result
---------------
West Europe
East US
East US 2
West US
...
Python
Para ver todos os provedores de recursos no Azure e o status de registro da sua assinatura, use:
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}")
O comando retorna:
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
...
Para conferir todos os provedores de recursos registrados para a assinatura, use:
# 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}")
Para manter os privilégios mínimos na assinatura, registre apenas os provedores de recursos que você está pronto para usar. Para registrar um provedor de recursos, use:
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}")
O comando retorna:
ProviderNamespace: Microsoft.Batch, RegistrationState: Registered
Importante
Conforme observado anteriormente, não bloqueie a criação de recursos para um provedor de recursos que esteja no estado de registro. Quando seu aplicativo não bloqueia um provedor de recursos no estado de registro, ele pode continuar antes de esperar a conclusão de todas as regiões.
Registre novamente um provedor de recursos para usar os locais que o Azure adicionou desde o registro anterior. Para registrar novamente, execute o comando de registro novamente.
Para obter informações para um provedor de recursos específico, use:
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")
O comando retorna:
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
...
Para ver os tipos de recurso para um provedor de recursos, use:
# 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)
O comando retorna:
batchAccounts
batchAccounts/pools
batchAccounts/detectors
batchAccounts/certificates
operations
locations
locations/quotas
locations/checkNameAvailability
locations/accountOperationResults
locations/virtualMachineSkus
locations/cloudServiceSkus
A versão da API corresponde a uma versão das operações da API REST do provedor de recursos. Conforme um provedor de recursos habilita novos recursos, ele lança uma nova versão da API REST.
Para obter versões de API disponíveis para um tipo de recurso, use:
# 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)
O comando retorna:
2023-05-01
2022-10-01
2022-06-01
2022-01-01
...
O Gerenciador de Recursos tem suporte em todas as regiões, mas os recursos que você implanta talvez não tenham suporte em todas as regiões. Além disso, pode haver limitações na sua assinatura que o impeçam de usar algumas regiões que suportam o recurso.
Para obter os locais suportados para um tipo de recurso, use:
# 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)
O comando retorna:
West Europe
East US
East US 2
West US
...
Próximas etapas
- Para saber mais sobre como criar modelos do Resource Manager, confira como Entender a estrutura e a sintaxe de modelos do ARM.
- Para visualizar os esquemas de modelo para provedores de recursos, veja Definir recursos com Bicep, modelos ARM e provedor Terraform AzAPI.
- Para obter uma lista que mapeia os provedores de recursos para os serviços do Azure, confira Provedores de recursos para os serviços do Azure.
- Para exibir as operações para um provedor de recursos, consulte API REST do Azure.