Compartir vía


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:

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.

4: Ejecución de los scripts

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

    az login
    
  2. 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 propiedad id en la salida):

    set 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 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