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:
Inicie sesión en Azure Portal.
En el menú de Azure Portal, busque Suscripciones. Seleccione el servicio entre las opciones disponibles.
Seleccione la suscripción que quiere ver.
En el menú de la izquierda, en Configuración, seleccione Proveedores de recursos.
Busque el proveedor de recursos que desea registrar.
Seleccione el proveedor de recursos para ver los detalles del proveedor de recursos.
Seleccione el proveedor de recursos y seleccione Registrar. Para mantener los privilegios mínimos en su suscripción, registre solo los proveedores de recursos que esté listo para usar.
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 las ubicaciones que se han agregado desde el registro anterior.
Visualización del proveedor de recursos
Para ver información de un proveedor de recursos concreto:
Inicie sesión en Azure Portal.
En el menú de Azure Portal, seleccione Todos los servicios.
En el cuadro Todos los servicios, escriba Explorador de recursos y, a continuación, seleccione Explorador de recursos.
Expanda Proveedores; para ello, seleccione la flecha derecha.
Expanda un proveedor de recursos y el tipo de recurso que desea ver.
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.
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.
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
- Para obtener más información sobre la creación de plantillas del Administrador de recursos, consulte Creación de plantillas del Administrador de recursos de Azure.
- Para ver los esquemas de plantilla de proveedor de recursos, consulte Referencia de plantilla.
- Para obtener una lista que asigna proveedores de recursos con servicios de Azure, consulte Proveedores de recursos para servicios de Azure.
- Para ver las operaciones de un proveedor de recursos, consulte API de REST de Azure.