Tipos y proveedores de recursos de Azure
Un proveedor de recursos de Azure es un conjunto de operaciones REST que admiten la funcionalidad de un servicio específico de Azure. Por ejemplo, el servicio Azure 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 en Azure.
- Comprobar el estado de registro de un proveedor de recursos.
- Registro de un proveedor de recursos.
- Ver tipos de recursos de un proveedor de recursos.
- Ver ubicaciones válidas para un tipo de recurso.
- Ver versiones de API válidas para un tipo de recurso.
Para obtener una lista que asigne proveedores de recursos a servicios de Azure, consulte los tipos y proveedores de recursos de Azure.
Registro del proveedor de recursos
Antes de usar un proveedor de recursos, asegúrese 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.
Al registrar un proveedor de recursos, Microsoft agrega una aplicación para el proveedor de recursos. El registro de proveedores de recursos innecesarios puede hacer que las aplicaciones que no reconozca aparezcan en el inquilino de Microsoft Entra. Normalmente, la API de Administración de servicios de Windows Azure agrega estas aplicaciones. Para limitar las aplicaciones innecesarias en el inquilino, registre solo los proveedores de recursos que necesita.
Algunos proveedores de recursos están registrados de forma predeterminada. Para obtener una lista de ejemplos, consulte Proveedores de recursos para servicios de Azure.
Al realizar determinadas acciones, Azure registra automáticamente otros proveedores de recursos. Al crear un recurso en Azure Portal, el portal normalmente registra el proveedor de recursos automáticamente. Al implementar una plantilla de Azure Resource Manager o un archivo de Bicep, Azure registra automáticamente los proveedores de recursos definidos en la plantilla. 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.
Es posible que tenga que registrar manualmente un proveedor de recursos durante otros escenarios.
Importante
El código de la aplicación no debe bloquear la creación de recursos para un proveedor de recursos que esté en el registrar estado. 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. Cuando la aplicación no bloquea un proveedor de recursos en el estado de registro, puede continuar antes de esperar 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 la 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 y 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 la 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. Cuando la aplicación no bloquea un proveedor de recursos en el estado de registro, puede continuar antes de esperar a que se completen todas las regiones.
Volver a registrar un proveedor de recursos para usar las ubicaciones que agregó 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.
Seleccione Todos los servicios en el menú de Azure Portal.
En el cuadro Todos los servicios, escriba explorador de recursos y seleccione Explorador de recursos.
Seleccione la flecha derecha para expandir Proveedores.
Expanda el 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 la suscripción que le impidan usar algunas regiones que admiten el recurso. El Explorador de recursos muestra 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 versiones de API válidas para el tipo de recurso.
Azure PowerShell
Para ver todos los proveedores de recursos en Azure y el estado de registro de la 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. Cuando la aplicación no bloquea un proveedor de recursos en el estado de registro, puede continuar antes de esperar a que se completen todas las regiones.
Para usar las ubicaciones que Azure agregó desde el registro anterior, vuelva a registrar un proveedor de recursos. 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 la suscripción que le impidan usar algunas regiones que admiten el recurso.
Para obtener las ubicaciones admitidas para 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
...
CLI de Azure
Para ver todos los proveedores de recursos en Azure y el estado de registro de la 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. Cuando la aplicación no bloquea un proveedor de recursos en el estado de registro, puede continuar antes de esperar 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 la suscripción que le impidan usar algunas regiones que admiten el recurso.
Para obtener las ubicaciones admitidas para 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 en Azure y el estado de registro de la 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. Cuando la aplicación no bloquea un proveedor de recursos en el estado de registro, puede continuar antes de esperar a que se completen todas las regiones.
Vuelva a registrar un proveedor de recursos para usar ubicaciones que Azure agregó 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 la suscripción que le impidan usar algunas regiones que admiten el recurso.
Para obtener las ubicaciones admitidas para 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 información sobre la creación de plantillas de Resource Manager, consulte Nociones sobre la estructura y la sintaxis de las plantillas de ARM.
- Para ver los esquemas de plantilla de los proveedores de recursos, consulte Definir recursos con Bicep, plantillas de ARM y proveedor AzAPI de Terraform.
- 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.