Ejemplo: Uso de las bibliotecas de Azure para enumerar los recursos y los grupos de recursos
En este ejemplo se muestra cómo usar las bibliotecas de administración del SDK de Azure en un script de Python para realizar dos tareas:
- Enumerar todos los grupos de recursos de una suscripción de Azure.
- Enumerar los recursos de un grupo de recursos específico.
Todos los comandos de este artículo funcionan igual en el bash de Linux o macOS y en los shells de comandos de Windows, a menos que se indique lo contrario.
Más adelante en este artículo se indican los comandos equivalentes de la CLI de Azure.
1: Configuración del entorno de desarrollo local
Si aún no lo ha hecho, configure un entorno en el que pueda ejecutar este código. Estas son algunas opciones:
Configure un entorno virtual de Python mediante
venv
o la herramienta que prefiera. Puede crear el entorno virtual localmente o en Azure Cloud Shell y ejecutar el código allí. Asegúrese de activar el entorno virtual para empezar a usarlo.Use un entorno de conda.
Use un contenedor de desarrollo en Visual Studio Code o GitHub Codespaces.
2: Instalación de los paquetes de biblioteca de Azure
Cree un archivo llamado requirements.txt con el siguiente contenido:
azure-mgmt-resource
azure-identity
En un terminal o símbolo del sistema con el entorno virtual activado, instale los requisitos:
pip install -r requirements.txt
3: Escritura del código para trabajar con grupos de recursos
3a. Enumeración de los grupos de recursos de una suscripción
Cree un archivo de Python llamado list_groups.py con el siguiente código. Los detalles se explican en los comentarios:
# Import the needed credential and management objects from the libraries.
from azure.identity import DefaultAzureCredential
from azure.mgmt.resource import ResourceManagementClient
import os
# Acquire a credential object.
credential = DefaultAzureCredential()
# Retrieve subscription ID from environment variable.
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]
# Obtain the management object for resources.
resource_client = ResourceManagementClient(credential, subscription_id)
# Retrieve the list of resource groups
group_list = resource_client.resource_groups.list()
# Show the groups in formatted output
column_width = 40
print("Resource Group".ljust(column_width) + "Location")
print("-" * (column_width * 2))
for group in list(group_list):
print(f"{group.name:<{column_width}}{group.location}")
3b. Enumeración de los recursos de un grupo de recursos específico
Cree un archivo de Python llamado list_resources.py con el siguiente código. Los detalles se explican en los comentarios.
De forma predeterminada, el código enumera los recursos de "myResourceGroup". Para usar otro grupo de recursos, establezca la variable de entorno RESOURCE_GROUP_NAME
en el nombre del grupo deseado.
# Import the needed credential and management objects from the libraries.
from azure.identity import DefaultAzureCredential
from azure.mgmt.resource import ResourceManagementClient
import os
# Acquire a credential object.
credential = DefaultAzureCredential()
# Retrieve subscription ID from environment variable.
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]
# Retrieve the resource group to use, defaulting to "myResourceGroup".
resource_group = os.getenv("RESOURCE_GROUP_NAME", "myResourceGroup")
# Obtain the management object for resources.
resource_client = ResourceManagementClient(credential, subscription_id)
# Retrieve the list of resources in "myResourceGroup" (change to any name desired).
# The expand argument includes additional properties in the output.
resource_list = resource_client.resources.list_by_resource_group(
resource_group, expand = "createdTime,changedTime")
# Show the groups in formatted output
column_width = 36
print("Resource".ljust(column_width) + "Type".ljust(column_width)
+ "Create date".ljust(column_width) + "Change date".ljust(column_width))
print("-" * (column_width * 4))
for resource in list(resource_list):
print(f"{resource.name:<{column_width}}{resource.type:<{column_width}}"
f"{str(resource.created_time):<{column_width}}{str(resource.changed_time):<{column_width}}")
Autenticación en el código
Más adelante en este artículo, debe iniciar sesión en Azure con la CLI de Azure para ejecutar el código de ejemplo. Si la cuenta tiene permisos para crear y enumerar grupos de recursos en la suscripción de Azure, el código se ejecutará correctamente.
Para usar este código en un script de producción, puede establecer variables de entorno para usar un método basado en la entidad de servicio para la autenticación. Para más información, consulte Autenticación de aplicaciones de Python con los servicios de Azure. Debe asegurarse de que la entidad de servicio tenga permisos suficientes para crear y enumerar grupos de recursos en la suscripción mediante la asignación de un rol adecuado en Azure; por ejemplo, el rol Colaborador de la suscripción.
Vínculos de referencia a las clases usadas en el código
4: Ejecución de los scripts
Si aún no lo ha hecho, inicie sesión en Azure mediante la CLI de Azure:
az login
Establezca como valor de la variable de entorno
AZURE_SUBSCRIPTION_ID
el identificador de su suscripción. (Puede ejecutar el comando az account show y obtener el identificador de suscripción de la propiedadid
en la salida):Enumerar todos los grupos de recursos de la suscripción:
python list_groups.py
Enumerar todos los recursos de un grupo de recursos:
python list_resources.py
De forma predeterminada, el código enumera los recursos de "myResourceGroup". Para usar otro grupo de recursos, establezca la variable de entorno
RESOURCE_GROUP_NAME
en el nombre del grupo deseado.
Como referencia: comandos equivalentes de la CLI de Azure
El siguiente comando de la CLI de Azure enumera los grupos de recursos de una suscripción:
az group list
El siguiente comando muestra los recursos dentro de "myResourceGroup" en la región centralus (el argumento location
es necesario para identificar un centro de datos específico):
az resource list --resource-group myResourceGroup --location centralus
Consulte también
- Ejemplo: Aprovisionamiento de un grupo de recursos
- Ejemplo: Aprovisionamiento de Azure Storage
- Ejemplo: Uso de Azure Storage
- Ejemplo: Aprovisionamiento de una aplicación web e implementación de código
- Ejemplo: Aprovisionamiento y consulta de una base de datos
- Ejemplo: Aprovisionamiento de una máquina virtual
- Uso de Azure Managed Disks con máquinas virtuales
- Realización de una breve encuesta sobre el SDK de Azure para Python