Tipos e fornecedores de recursos do Azure

Um provedor de recursos do Azure é um conjunto de operações REST que habilitam a funcionalidade para um serviço específico do Azure. Por exemplo, o serviço Cofre da Chave 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 para um cofre de chaves é Microsoft.KeyVault/vaults.

Neste artigo, vai aprender a:

  • Exibir todos os provedores de recursos no Azure
  • Verificar o status de registro de um provedor de recursos
  • Registar um fornecedor de recursos
  • Exibir tipos de recursos para um provedor de recursos
  • Exibir locais válidos para um tipo de recurso
  • Exibir versões válidas da API para um tipo de recurso

Para obter uma lista que mapeia provedores de recursos para serviços do Azure, consulte Provedores de recursos para serviços do Azure.

Registar o fornecedor de recursos

Antes de usar um provedor de recursos, você deve verificar se sua assinatura do Azure está registrada para o provedor de recursos. O registro configura sua assinatura para trabalhar com o provedor de recursos.

Importante

Registre um provedor de recursos somente quando estiver pronto para usá-lo. Esta etapa de registro ajuda a manter os privilégios mínimos em sua assinatura. Um usuário mal-intencionado não pode usar provedores de recursos não registrados.

O registro de provedores de recursos desnecessários pode resultar em aplicativos não reconhecidos aparecendo em seu locatário do Microsoft Entra. A Microsoft adiciona o aplicativo para um provedor de recursos quando você o registra. Esses aplicativos geralmente são adicionados pela API de Gerenciamento de Serviços do Windows Azure. Para evitar aplicações desnecessárias no seu inquilino, registe apenas os fornecedores de recursos necessários.

Alguns provedores de recursos são registrados por padrão. Para obter uma lista de provedores de recursos registrados por padrão, consulte Provedores de recursos para serviços do Azure.

Outros provedores de recursos são registrados automaticamente quando você executa determinadas ações. Quando você cria um recurso através do portal, o provedor de recursos normalmente é registrado para você. Quando você implanta um modelo do Azure Resource Manager ou um arquivo Bicep, os provedores de recursos definidos no modelo são registrados automaticamente. À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.

Para outros cenários, talvez seja necessário registrar manualmente um provedor de recursos.

Importante

O código do 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 suportada. Para criar recursos em uma região, o registro só precisa ser concluído nessa região. Ao não bloquear um provedor de recursos no estado de registro, seu aplicativo pode continuar muito mais cedo do que esperar que todas as regiões sejam concluídas.

Você deve ter permissão para fazer a /register/action operação para o provedor de recursos. A permissão está incluída nas funções de Colaborador e Proprietário.

Não é possível cancelar o registro de um provedor de recursos quando ainda tiver tipos de recursos desse provedor de recursos em sua assinatura.

Registre novamente um provedor de recursos quando o provedor de recursos oferecer suporte a novos locais que você precisa usar.

Portal do Azure

Registar o fornecedor de recursos

Para ver todos os fornecedores de recursos e o estado de registo da subscrição:

  1. Inicie sessão no portal do Azure.

  2. No menu do portal do Azure, procure Subscrições. Selecione nas opções disponíveis.

    Captura de ecrã a mostrar a pesquisa de subscrições no portal do Azure.

  3. Selecione a subscrição que quer ver.

  4. No menu esquerdo, em Definições, selecione Fornecedores de Recursos.

    Captura de ecrã a mostrar a seleção de fornecedores de recursos no portal do Azure.

  5. Encontre o provedor de recursos que você deseja registrar.

    Captura de ecrã a mostrar a localização de fornecedores de recursos no portal do Azure.

  6. Selecione o provedor de recursos para ver os detalhes do provedor de recursos.

    Captura de ecrã dos detalhes do fornecedor de recursos no portal do Azure.

  7. Selecione o provedor de recursos e selecione Registrar. Para manter o mínimo de privilégios na subscrição, registe apenas os fornecedores de recursos que está pronto a utilizar.

    Captura de ecrã a mostrar o registo de um fornecedor de recursos no portal do Azure.

    Importante

    Como observado anteriormente, não bloqueie a criação de recursos para um provedor de recursos que esteja no estado de registro . Ao não bloquear um provedor de recursos no estado de registro, seu aplicativo pode continuar muito mais cedo do que esperar que todas as regiões sejam concluídas.

  8. Registre novamente um provedor de recursos para usar locais que foram adicionados desde o registro anterior.

    Captura de ecrã a mostrar o novo registo de um fornecedor de recursos no portal do Azure.

Exibir provedor de recursos

Para ver informações de um provedor de recursos específico:

  1. Inicie sessão no portal do Azure.

  2. No menu do portal do Azure, selecione Todos os serviços.

  3. Na caixa Todos os serviços , introduza explorador de recursos e, em seguida, selecione Explorador de Recursos.

    Captura de ecrã a mostrar a seleção de Todos os serviços no portal do Azure para aceder ao Explorador de Recursos.

  4. Expanda Provedores selecionando a seta para a direita.

    Captura de ecrã a mostrar a expansão da secção Fornecedores no Azure Resource Explorer.

  5. Expanda um provedor de recursos e o tipo de recurso que você deseja exibir.

  6. O Gerenciador de Recursos é suportado em todas as regiões, mas os recursos implantados podem não ser suportados em todas as regiões. Além disso, pode haver limitações na sua subscrição que o impeçam de utilizar algumas regiões que suportam o recurso. O explorador de recursos exibe locais válidos para o tipo de recurso.

    Captura de ecrã a mostrar a apresentação de localizações válidas para um tipo de recurso no Azure Resource Explorer.

  7. A versão da API corresponde a uma versão das operações da API REST do provedor de recursos. Como um provedor de recursos habilita novos recursos, ele lança uma nova versão da API REST. O explorador de recursos exibe versões de API válidas para o tipo de recurso.

    Captura de ecrã a mostrar a apresentação de versões de API válidas para um tipo de recurso no Azure Resource Explorer.

Azure PowerShell

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 ver todos os fornecedores de recursos registados para a sua subscrição, utilize:

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

Para manter o mínimo de privilégios na subscrição, registe apenas os fornecedores de recursos que está pronto a utilizar. Para registar um fornecedor de recursos, utilize:

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

Como observado anteriormente, não bloqueie a criação de recursos para um provedor de recursos que esteja no estado de registro . Ao não bloquear um provedor de recursos no estado de registro, seu aplicativo pode continuar muito mais cedo do que esperar que todas as regiões sejam concluídas.

Registre novamente um provedor de recursos para usar locais que foram adicionados desde o registro anterior. Para se registrar novamente, execute o comando registration novamente.

Para ver informações de 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 recursos 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. Como um provedor de recursos habilita novos recursos, ele lança uma nova versão da API REST.

Para obter as 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 é suportado em todas as regiões, mas os recursos implantados podem não ser suportados em todas as regiões. Além disso, pode haver limitações na sua subscrição que o impeçam de utilizar 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 ver todos os fornecedores de recursos registados para a sua subscrição, utilize:

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

Para manter o mínimo de privilégios na subscrição, registe apenas os fornecedores de recursos que está pronto a utilizar. Para registar um fornecedor de recursos, utilize:

az provider register --namespace Microsoft.Batch

O comando retorna uma mensagem informando que o registro está em andamento.

Para ver informações de 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

Como observado anteriormente, não bloqueie a criação de recursos para um provedor de recursos que esteja no estado de registro . Ao não bloquear um provedor de recursos no estado de registro, seu aplicativo pode continuar muito mais cedo do que esperar que todas as regiões sejam concluídas.

Para ver os tipos de recursos 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. Como um provedor de recursos habilita novos recursos, ele lança uma nova versão da API REST.

Para obter as 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 é suportado em todas as regiões, mas os recursos implantados podem não ser suportados em todas as regiões. Além disso, pode haver limitações na sua subscrição que o impeçam de utilizar 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 ver todos os fornecedores de recursos registados para a sua subscrição, utilize:

# 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 o mínimo de privilégios na subscrição, registe apenas os fornecedores de recursos que está pronto a utilizar. Para registar um fornecedor de recursos, utilize:

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

Como observado anteriormente, não bloqueie a criação de recursos para um provedor de recursos que esteja no estado de registro . Ao não bloquear um provedor de recursos no estado de registro, seu aplicativo pode continuar muito mais cedo do que esperar que todas as regiões sejam concluídas.

Registre novamente um provedor de recursos para usar locais que foram adicionados desde o registro anterior. Para se registrar novamente, execute o comando registration novamente.

Para ver informações de 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 recursos 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. Como um provedor de recursos habilita novos recursos, ele lança uma nova versão da API REST.

Para obter as 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 é suportado em todas as regiões, mas os recursos implantados podem não ser suportados em todas as regiões. Além disso, pode haver limitações na sua subscrição que o impeçam de utilizar 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óximos passos

  • Para saber mais sobre como criar modelos do Resource Manager, consulte Criação de modelos do Azure Resource Manager.
  • Para exibir os esquemas de modelo do provedor de recursos, consulte Referência de modelo.
  • Para obter uma lista que mapeia provedores de recursos para serviços do Azure, consulte Provedores de recursos para serviços do Azure.
  • Para exibir as operações de um provedor de recursos, consulte API REST do Azure.