Partilhar via


Resolver erros para registro do provedor de recursos

Este artigo descreve erros de registro do provedor de recursos que ocorrem quando você usa um provedor de recursos que ainda não usou em sua assinatura do Azure. Os erros são exibidos quando você implanta recursos com um arquivo Bicep ou modelo do Azure Resource Manager (modelo ARM). 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ê pode receber uma mensagem semelhante que afirma:

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 suportados e versões de API. Você pode alterar seu modelo para usar um valor sugerido. A maioria dos provedores é registrada automaticamente pelo portal do Microsoft Azure ou pela interface de linha de comando, mas não todos. Se você não tiver usado um provedor de recursos específico antes, talvez seja necessário registrar esse provedor.

Quando o desligamento automático da máquina virtual (VM) está desativado, 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á em seu modelo ARM ou arquivo Bicep. Esse erro pode acontecer 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.

Motivo

Você recebe esses erros por um destes motivos:

  • O provedor de recursos necessário não foi registrado para 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 az provider list para exibir o status de registro dos provedores de recursos da sua assinatura. Os exemplos usam o --output table parâmetro para filtrar a saída quanto à legibilidade. 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 por estado de registro. Substitua o valor da consulta por Registered ou NotRegistered.

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

Obtenha o status de registro para 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 a ser registrado.

az provider register --namespace Microsoft.Cdn

Para obter os locais suportados de um tipo de recurso, use az provider show:

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

Obtenha as versões de API suportadas de um tipo de recurso:

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