Compartir a través de


Ejemplo: Uso de las bibliotecas de Azure para enumerar los grupos de recursos y los 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:

  • Enumere todos los grupos de recursos de una suscripción de Azure.
  • Enumera los recursos dentro de un grupo de recursos específico.

Todos los comandos de este artículo funcionan iguales en los shells de comandos de Linux/macOS y Windows, a menos que se indique.

Los comandos equivalentes de la CLI de Azure se enumeran más adelante en este artículo.

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. Para empezar a usar el entorno virtual, asegúrese de activarlo. Para instalar Python, consulte Instalación de Python.
#!/bin/bash
# Create a virtual environment
python -m venv .venv
# Activate the virtual environment
source .venv/Scripts/activate # only required for Windows (Git Bash)
  • Usa un entorno conda . Para instalar Conda, consulte Instalación de Miniconda.

  • Usa un contenedor de desarrollo en Visual Studio Code o en GitHub Codespaces .

2: Instalación de los paquetes de biblioteca de Azure

Cree un archivo denominado requirements.txt con el siguiente contenido:

azure-mgmt-resource
azure-identity

En un terminal o línea de comandos con el entorno virtual activado, instale los requisitos necesarios:

pip install -r requirements.txt

3: Escribir código para trabajar con grupos de recursos

3a. Enumeración de grupos de recursos en una suscripción

Cree un archivo de Python denominado list_groups.py con el código siguiente. Los comentarios explican los detalles:

# 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 recursos dentro de un grupo de recursos específico

Cree un archivo de Python denominado list_resources.py con el código siguiente. Los comentarios explican los detalles.

De forma predeterminada, el código enumera los recursos en "myResourceGroup". Para usar otro grupo de recursos, establezca la RESOURCE_GROUP_NAME variable de entorno 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, inicia 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 servicios de Azure. Debe asegurarse de que el principal de servicio tiene permisos suficientes para crear y enumerar grupos de recursos en tu suscripción mediante la asignación de un rol adecuado en Azure; por ejemplo, el rol Colaborador en tu suscripción.

4: Ejecutar los scripts

  1. Si aún no lo ha hecho, inicie sesión en Azure mediante la CLI de Azure:

    az login
    
  2. Establezca la variable de entorno AZURE_SUBSCRIPTION_ID a su ID de suscripción. (Puede ejecutar el comando az account show y obtener el ID de suscripción de la propiedad id en la salida):

    export AZURE_SUBSCRIPTION_ID=00000000-0000-0000-0000-000000000000
    
  3. Enumerar todos los grupos de recursos de la suscripción:

    python list_groups.py
    
  4. Enumerar todos los recursos de un grupo de recursos:

    python list_resources.py
    

    De forma predeterminada, el código enumera los recursos en "myResourceGroup". Para usar otro grupo de recursos, establezca la RESOURCE_GROUP_NAME variable de entorno 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 enumera los recursos dentro de "myResourceGroup" en la región centralus (el location argumento es necesario para identificar un centro de datos específico):

az resource list --resource-group myResourceGroup --location centralus

Consulte también