Resolución de errores del registro del proveedor de recursos

En este artículo se describen los errores de registro del proveedor de recursos que se producen al usar un proveedor de recursos que aún no se ha usado en la suscripción de Azure. El error se produce al implementar recursos con un archivo de Bicep o una plantilla de Azure Resource Manager (plantilla de ARM). Si Azure no registra automáticamente un proveedor de recursos, puede realizar un registro manual.

Síntoma

Cuando se implementa un recurso, es posible que reciba el siguiente mensaje y código de error:

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

O bien, puede recibir un mensaje similar que indica:

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

El mensaje de error debería proporcionarle sugerencias con respecto a las versiones de API y a las ubicaciones admitidas. Puede cambiar la plantilla a uno de los valores sugeridos. La mayoría de los proveedores se registran automáticamente mediante Microsoft Azure Portal o la interfaz de línea de comandos que esté usando; pero no ocurre con todos. Si no ha usado un proveedor de recursos determinado antes, es posible que deba registrar dicho proveedor.

Cuando el apagado automático de la máquina virtual (VM) está deshabilitado, es posible que reciba un mensaje de error similar a:

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

Puede producirse un error inesperado para un proveedor de recursos que no está en la plantilla ARM o en el archivo Bicep. Este error puede ocurrir cuando se implementa un recurso que crea otros recursos de soporte técnico. Por ejemplo, el recurso de la plantilla agrega recursos de supervisión o seguridad. El mensaje de error indica que el espacio de nombres del proveedor de recursos que necesita registrar es para el recurso compatible.

Causa

Recibirá estos errores por uno de estos motivos:

  • El proveedor de recursos necesario no se ha registrado en la suscripción.
  • No se permite esta versión de API para el tipo de recurso.
  • No se permite esta ubicación para el tipo de recurso.
  • Para el cierre automático de la máquina virtual, el proveedor de recursos Microsoft.DevTestLab debe estar registrado.

Solución

Puede usar la CLI de Azure para obtener información sobre el estado de registro de un proveedor de recursos y registrar un proveedor de recursos.

Use la az provider list para mostrar el estado del registro de los proveedores de recursos de su suscripción. Los ejemplos usan el parámetro --output table para filtrar el resultado por legibilidad. Puede omitir el parámetro para ver todas las propiedades.

El siguiente comando enumera todos los proveedores de recursos de la suscripción y si son Registered o NotRegistered.

az provider list --output table

Puede filtrar el resultado por estado de registro. Reemplace el valor de la consulta con Registered o NotRegistered.

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

Obtenga el estado de registro de un proveedor de recursos específico:

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

Para registrar un proveedor de recursos, use el comando az provider register y especifique el espacio de nombres que desea registrar.

az provider register --namespace Microsoft.Cdn

Para obtener las ubicaciones admitidas de un tipo de recurso, use az provider show:

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

Obtenga las versiones de API compatibles de un tipo de recurso:

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