Solucione erros de registro do provedor de recursos

Este artigo descreve os erros de registro do provedor de recursos, que ocorrem ao usar um provedor de recursos que você ainda não usou na assinatura do Azure. Os erros são exibidos quando você implanta recursos com um arquivo Bicep ou modelo do ARM (modelo do Azure Resource Manager). Se o Azure não registrar automaticamente um provedor de recursos, você poderá fazer um registro manual.

Sintoma

Quando um recurso é implantado, você pode receber o seguinte código de erro e mensagem:

Code: NoRegisteredProviderFound
Message: No registered resource provider found for location {location}
and API version {api-version} for type {resource-type}.

Ou você poderá receber uma mensagem semelhante que indica:

Code: MissingSubscriptionRegistration
Message: The subscription is not registered to use namespace {resource-provider-namespace}

A mensagem de erro deve fornecer sugestões para os locais com suporte e as versões da API. Você pode alterar o modelo para um usar a valore sugerido. A maioria dos provedores são registrados automaticamente pelo portal do Microsoft Azure ou pela interface de linha de comando, mas nem todos. Se você não usou um provedor de recursos específico antes, precisará registrar esse provedor.

Quando o desligamento automático da máquina virtual (VM) é desabilitado, você pode receber uma mensagem de erro semelhante a:

Code: AuthorizationFailed
Message: The client '<identifier>' with object id '<identifier>' does not have authorization to perform
action 'Microsoft.Compute/virtualMachines/read' over scope ...

Um erro inesperado pode ocorrer para um provedor de recursos que não está no seu modelo ARM ou arquivo Bicep. Esse erro pode ocorrer quando um recurso é implantado que cria outros recursos de suporte. Por exemplo, o recurso em seu modelo adiciona recursos de monitoramento ou segurança. A mensagem de erro indica que o namespace do provedor de recursos que você precisa registrar é para o recurso de suporte.

Causa

Você recebe esses erros por um destes três motivos:

  • O provedor de recursos necessário não foi registrado para a sua assinatura.
  • Versão da API não suportada para o tipo de recurso.
  • Local não suportado para o tipo de recurso.
  • Para o desligamento automático da VM, o Microsoft.DevTestLab provedor de recursos deve ser registrado.

Solução

Você pode usar a CLI do Azure para obter informações sobre o status de registro de um provedor de recursos e registrar um provedor de recursos.

Use lista de provedores azpara exibir o status de registro dos provedores de recursos de sua assinatura. Os exemplos usam o --output table parâmetro para filtrar a saída para capacidade de leitura. Você pode omitir o parâmetro para ver todas as propriedades.

O comando a seguir lista todos os provedores de recursos da assinatura e se eles são Registered ou NotRegistered.

az provider list --output table

Você pode filtrar a saída pelo estado de registro. Substitua o valor da consulta por Registered ou NotRegistered.

az provider list --query "[?registrationState=='Registered']" --output table

Obter o status de registro de um provedor de recursos específico:

az provider list --query "[?namespace=='Microsoft.Compute']" --output table

Para registrar um provedor de recursos, use o comando az provider register e especifique o namespace para registrar.

az provider register --namespace Microsoft.Cdn

Para obter os locais com suporte de um tipo de recurso, useaz provider show:

az provider show --namespace Microsoft.Web --query "resourceTypes[?resourceType=='sites'].locations"

Obter versões da API com suporte de um tipo de recurso:

az provider show --namespace Microsoft.Web --query "resourceTypes[?resourceType=='sites'].apiVersions"