Tipos y proveedores de recursos de Azure

Un proveedor de recursos de Azure es un conjunto de operaciones REST que permiten la funcionalidad para un servicio específico de Azure. Por ejemplo, el servicio Key Vault consta de un proveedor de recursos denominado Microsoft.KeyVault. El proveedor de recursos define las operaciones REST para administrar almacenes, secretos, claves y certificados.

El proveedor de recursos define los recursos de Azure que puede implementar en su cuenta. El nombre de un tipo de recurso tiene el formato: {resource-provider}/{resource-type}. El tipo de recurso para un almacén de claves es Microsoft.KeyVault/vaults.

En este artículo aprenderá a:

  • Ver todos los proveedores de recursos de Azure
  • Comprobar el estado de registro de un proveedor de recursos
  • Registrar un proveedor de recursos
  • Ver los tipos de recursos de un proveedor
  • Ver las ubicaciones válidas de un tipo de recurso
  • Ver las versiones de API válidas de un tipo de recurso

Para obtener una lista que asigna proveedores de recursos con servicios de Azure, consulte Proveedores de recursos para servicios de Azure.

Registro del proveedor de recursos

Antes de usar un proveedor de recursos, debe asegurarse de que la suscripción de Azure esté registrada para el proveedor de recursos. El registro configura su suscripción para así poder trabajar con el proveedor de recursos.

Importante

Registre un proveedor de recursos solo cuando esté listo para usarlo. Este paso de registro ayuda a mantener los privilegios mínimos dentro de su suscripción. Un usuario malintencionado no puede usar proveedores de recursos no registrados.

El registro de proveedores de recursos innecesarios puede dar lugar a que aparezcan aplicaciones no reconocidas en su inquilino de Microsoft Entra. Microsoft agrega la aplicación de un proveedor de recursos al registrarlo. Estas aplicaciones se suelen agregar mediante la Service Management API de Azure. Para evitar aplicaciones innecesarias en el inquilino, registre solo los proveedores de recursos necesarios.

Algunos proveedores de recursos están registrados de forma predeterminada. Para obtener una lista de los proveedores de recursos registrados de forma predeterminada, consulte Proveedores de recursos para servicios de Azure.

Otros proveedores de recursos están registrados automáticamente cuando toma determinadas medidas. Cuando crea un recurso a través del portal, el proveedor de recursos normalmente se registra de manera automática. Al implementar una plantilla de Azure Resource Manager o un archivo Bicep, los proveedores de recursos definidos en la plantilla se registran automáticamente. A veces, un recurso de la plantilla requiere recursos auxiliares que no están en la plantilla. Los ejemplos comunes son la supervisión o los recursos de seguridad. Debe registrar esos proveedores de recursos manualmente.

En otros escenarios, es posible que tenga que registrar manualmente un proveedor de recursos.

Importante

El código de aplicación no debe bloquear la creación de recursos para un proveedor de recursos con el estado de registro. Al registrar el proveedor de recursos, la operación se realiza de forma individual para cada región admitida. Para crear recursos en una región, el registro solo debe completarse en dicha región. Si no se bloquea un proveedor de recursos con el estado de registro, la aplicación puede continuar mucho antes que si se espera a que se completen todas las regiones.

Debe tener permiso para realizar la operación /register/action para el proveedor de recursos. El permiso se incluye en los roles Colaborador y Propietario.

No se puede anular el registro de un proveedor de recursos si todavía dispone de tipos de recursos de dicho proveedor en la suscripción.

Vuelva a registrar un proveedor de recursos cuando el proveedor de recursos admita nuevas ubicaciones que necesita usar.

Portal de Azure

Registro del proveedor de recursos

Para ver todos los proveedores de recursos y el estado de registro de su suscripción:

  1. Inicie sesión en Azure Portal.

  2. En el menú de Azure Portal, busque Suscripciones. Seleccione el servicio entre las opciones disponibles.

    Screenshot of searching for subscriptions in the Azure portal.

  3. Seleccione la suscripción que quiere ver.

    Screenshot of selecting a subscription in the Azure portal.

  4. En el menú de la izquierda, en Configuración, seleccione Proveedores de recursos.

    Screenshot of selecting resource providers in the Azure portal.

  5. Busque el proveedor de recursos que desea registrar y seleccione Registrar. Para mantener los privilegios mínimos en su suscripción, registre solo los proveedores de recursos que esté listo para usar.

    Screenshot of registering a resource provider in the Azure portal.

    Importante

    Como ya se ha señalado, no bloquee la creación de recursos para un proveedor de recursos con el estado de registro. Si no se bloquea un proveedor de recursos con el estado de registro, la aplicación puede continuar mucho antes que si se espera a que se completen todas las regiones.

  6. Vuelva a registrar un proveedor de recursos para usar las ubicaciones que se han agregado desde el registro anterior.

    Screenshot of reregistering a resource provider in the Azure portal.

Visualización del proveedor de recursos

Para ver información de un proveedor de recursos concreto:

  1. Inicie sesión en Azure Portal.

  2. En el menú de Azure Portal, seleccione Todos los servicios.

  3. En el cuadro Todos los servicios, escriba Explorador de recursos y, a continuación, seleccione Explorador de recursos.

    Screenshot of selecting All services in the Azure portal to access Resource Explorer.

  4. Expanda Proveedores; para ello, seleccione la flecha derecha.

    Screenshot of expanding the Providers section in the Azure Resource Explorer.

  5. Expanda un proveedor de recursos y el tipo de recurso que desea ver.

    Screenshot of expanding a resource provider and resource type in the Azure Resource Explorer.

  6. El Administrador de recursos se admite en todas las regiones, pero puede que los recursos que implementa no se admitan en todas las regiones. Además, puede haber limitaciones en su suscripción que le impidan utilizar algunas regiones que admiten el recurso. El explorador de recursos muestra las ubicaciones válidas para el tipo de recurso.

    Screenshot of displaying valid locations for a resource type in the Azure Resource Explorer.

  7. La versión de la API corresponde a una versión de las operaciones de la API de REST del proveedor de recursos. Conforme un proveedor de recursos habilite nuevas características, publicará una nueva versión de la API de REST. El explorador de recursos muestra las versiones de API válidas para el tipo de recurso.

    Screenshot of displaying valid API versions for a resource type in the Azure Resource Explorer.

Azure PowerShell

Para ver todos los proveedores de recursos de Azure y el estado de registro de su suscripción, use:

Get-AzResourceProvider -ListAvailable | Select-Object ProviderNamespace, RegistrationState

El comando devuelve:

ProviderNamespace                RegistrationState
-------------------------------- ------------------
Microsoft.ClassicCompute         Registered
Microsoft.ClassicNetwork         Registered
Microsoft.ClassicStorage         Registered
Microsoft.CognitiveServices      Registered
...

Para ver todos los proveedores de recursos registrados para la suscripción, use:

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

Para mantener los privilegios mínimos en su suscripción, registre solo los proveedores de recursos que esté listo para usar. Para registrar un proveedor de recursos, use:

Register-AzResourceProvider -ProviderNamespace Microsoft.Batch

El comando devuelve:

ProviderNamespace : Microsoft.Batch
RegistrationState : Registering
ResourceTypes     : {batchAccounts, operations, locations, locations/quotas}
Locations         : {West Europe, East US, East US 2, West US...}

Importante

Como ya se ha señalado, no bloquee la creación de recursos para un proveedor de recursos con el estado de registro. Si no se bloquea un proveedor de recursos con el estado de registro, la aplicación puede continuar mucho antes que si se espera a que se completen todas las regiones.

Vuelva a registrar un proveedor de recursos para usar ubicaciones que se hayan agregado desde el registro anterior. Para volver a registrar, vuelva a ejecutar el comando de registro.

Para ver información de un proveedor de recursos concreto, use:

Get-AzResourceProvider -ProviderNamespace Microsoft.Batch

El comando devuelve:

{ProviderNamespace : Microsoft.Batch
RegistrationState : Registered
ResourceTypes     : {batchAccounts}
Locations         : {West Europe, East US, East US 2, West US...}

...

Para ver los tipos de recursos de un proveedor, use:

(Get-AzResourceProvider -ProviderNamespace Microsoft.Batch).ResourceTypes.ResourceTypeName

El comando devuelve:

batchAccounts
operations
locations
locations/quotas

La versión de la API corresponde a una versión de las operaciones de la API de REST del proveedor de recursos. Conforme un proveedor de recursos habilite nuevas características, publicará una nueva versión de la API de REST.

Para obtener las versiones de API de un tipo de recurso, use:

((Get-AzResourceProvider -ProviderNamespace Microsoft.Batch).ResourceTypes | Where-Object ResourceTypeName -eq batchAccounts).ApiVersions

El comando devuelve:

2023-05-01
2022-10-01
2022-06-01
2022-01-01
2021-06-01
2021-01-01
...

El Administrador de recursos se admite en todas las regiones, pero puede que los recursos que implementa no se admitan en todas las regiones. Además, puede haber limitaciones en su suscripción que le impidan utilizar algunas regiones que admiten el recurso.

Para obtener las ubicaciones compatibles con un tipo de recurso, use:

((Get-AzResourceProvider -ProviderNamespace Microsoft.Batch).ResourceTypes | Where-Object ResourceTypeName -eq batchAccounts).Locations

El comando devuelve:

West Europe
East US
East US 2
West US
...

Azure CLI

Para ver todos los proveedores de recursos de Azure y el estado de registro de su suscripción, use:

az provider list --query "[].{Provider:namespace, Status:registrationState}" --out table

El comando devuelve:

Provider                         Status
-------------------------------- ----------------
Microsoft.ClassicCompute         Registered
Microsoft.ClassicNetwork         Registered
Microsoft.ClassicStorage         Registered
Microsoft.CognitiveServices      Registered
...

Para ver todos los proveedores de recursos registrados para la suscripción, use:

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

Para mantener los privilegios mínimos en su suscripción, registre solo los proveedores de recursos que esté listo para usar. Para registrar un proveedor de recursos, use:

az provider register --namespace Microsoft.Batch

El comando devuelve un mensaje que indica que el registro está en curso.

Para ver información de un proveedor de recursos concreto, use:

az provider show --namespace Microsoft.Batch

El comando devuelve:

{
    "id": "/subscriptions/####-####/providers/Microsoft.Batch",
    "namespace": "Microsoft.Batch",
    "registrationsState": "Registering",
    "resourceTypes:" [
        ...
    ]
}

Importante

Como ya se ha señalado, no bloquee la creación de recursos para un proveedor de recursos con el estado de registro. Si no se bloquea un proveedor de recursos con el estado de registro, la aplicación puede continuar mucho antes que si se espera a que se completen todas las regiones.

Para ver los tipos de recursos de un proveedor, use:

az provider show --namespace Microsoft.Batch --query "resourceTypes[*].resourceType" --out table

El comando devuelve:

Result
---------------
batchAccounts
operations
locations
locations/quotas

La versión de la API corresponde a una versión de las operaciones de la API de REST del proveedor de recursos. Conforme un proveedor de recursos habilite nuevas características, publicará una nueva versión de la API de REST.

Para obtener las versiones de API de un tipo de recurso, use:

az provider show --namespace Microsoft.Batch --query "resourceTypes[?resourceType=='batchAccounts'].apiVersions | [0]" --out table

El comando devuelve:

Result
---------------
2023-05-01
2022-10-01
2022-06-01
2022-01-01
...

El Administrador de recursos se admite en todas las regiones, pero puede que los recursos que implementa no se admitan en todas las regiones. Además, puede haber limitaciones en su suscripción que le impidan utilizar algunas regiones que admiten el recurso.

Para obtener las ubicaciones compatibles con un tipo de recurso, use:

az provider show --namespace Microsoft.Batch --query "resourceTypes[?resourceType=='batchAccounts'].locations | [0]" --out table

El comando devuelve:

Result
---------------
West Europe
East US
East US 2
West US
...

Python

Para ver todos los proveedores de recursos de Azure y el estado de registro de su suscripción, 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}")  

El comando devuelve:

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 los proveedores de recursos registrados para la suscripción, 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 mantener los privilegios mínimos en su suscripción, registre solo los proveedores de recursos que esté listo para usar. Para registrar un proveedor 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}")  

El comando devuelve:

ProviderNamespace: Microsoft.Batch, RegistrationState: Registered

Importante

Como ya se ha señalado, no bloquee la creación de recursos para un proveedor de recursos con el estado de registro. Si no se bloquea un proveedor de recursos con el estado de registro, la aplicación puede continuar mucho antes que si se espera a que se completen todas las regiones.

Vuelva a registrar un proveedor de recursos para usar ubicaciones que se hayan agregado desde el registro anterior. Para volver a registrar, vuelva a ejecutar el comando de registro.

Para ver información de un proveedor de recursos concreto, 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")  

El comando devuelve:

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 los tipos de recursos de un proveedor, 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)  

El comando devuelve:

batchAccounts
batchAccounts/pools
batchAccounts/detectors
batchAccounts/certificates
operations
locations
locations/quotas
locations/checkNameAvailability
locations/accountOperationResults
locations/virtualMachineSkus
locations/cloudServiceSkus

La versión de la API corresponde a una versión de las operaciones de la API de REST del proveedor de recursos. Conforme un proveedor de recursos habilite nuevas características, publicará una nueva versión de la API de REST.

Para obtener las versiones de API de un 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)  

El comando devuelve:

2023-05-01
2022-10-01
2022-06-01
2022-01-01
...

El Administrador de recursos se admite en todas las regiones, pero puede que los recursos que implementa no se admitan en todas las regiones. Además, puede haber limitaciones en su suscripción que le impidan utilizar algunas regiones que admiten el recurso.

Para obtener las ubicaciones compatibles con un 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)  

El comando devuelve:

West Europe
East US
East US 2
West US
...

Pasos siguientes