Inicio rápido: Ejecución de la primera consulta de Resource Graph con Python

El primer paso para usar Azure Resource Graph es comprobar que están instaladas las bibliotecas necesarias para Python. Este inicio rápido lo guiará a través del proceso de agregar las bibliotecas a la instalación de Python.

Cuando finalice, habrá agregado las bibliotecas a la instalación de Python y ejecutado la primera consulta de Resource Graph.

Requisitos previos

Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.

Uso de Azure Cloud Shell

En Azure se hospeda Azure Cloud Shell, un entorno de shell interactivo que puede utilizar mediante el explorador. Puede usar Bash o PowerShell con Cloud Shell para trabajar con los servicios de Azure. Puede usar los comandos preinstalados de Cloud Shell para ejecutar el código de este artículo sin tener que instalar nada en su entorno local.

Para iniciar Azure Cloud Shell:

Opción Ejemplo o vínculo
Seleccione Pruébelo en la esquina superior derecha de un bloque de código. Solo con seleccionar Pruébelo no se copia automáticamente el código en Cloud Shell. Ejemplo de Probarlo para Azure Cloud Shell
Vaya a https://shell.azure.com o seleccione el botón Iniciar Cloud Shell para abrir Cloud Shell en el explorador. Iniciar Cloud Shell en una nueva ventana
Seleccione el botón Cloud Shell en la barra de menús de la esquina superior derecha de Azure Portal. Botón Cloud Shell en Azure Portal

Para ejecutar el código de este artículo en Azure Cloud Shell:

  1. Inicie Cloud Shell.

  2. Seleccione el botón Copiar de un bloque de código para copiar el código.

  3. Pegue el código en la sesión de Cloud Shell. Para ello, seleccione Ctrl+Mayús+V en Windows y Linux, o bien seleccione Cmd+Mayús+V en macOS.

  4. Seleccione Entrar para ejecutar el código.

Adición de la biblioteca de Resource Graph

Para que Python pueda consultar Azure Resource Graph, se debe agregar la biblioteca. Esta biblioteca funciona siempre que se pueda usar Python, lo que incluye bash en Windows 10 o instalado localmente.

  1. Compruebe que está instalada la versión más reciente de Python (al menos la 3.8). Si aún no está instalada, descárguela en Python.org.

  2. Compruebe que está instalada la versión más reciente de la CLI de Azure (al menos la 2.5.1). Si aún no está instalada, consulte Instalación de la CLI de Azure.

    Nota

    La CLI de Azure es necesaria para que Python pueda usar la autenticación basada en la CLI en los ejemplos siguientes. Para información sobre otras opciones, consulte Autenticación mediante las bibliotecas de administración de Python.

  3. Autentíquese mediante la CLI de Azure.

    az login
    
  4. En el entorno de Python que elija, instale las bibliotecas necesarias para Azure Resource Graph:

    # Add the Resource Graph library for Python
    pip install azure-mgmt-resourcegraph
    
    # Add the Resources library for Python
    pip install azure-mgmt-resource
    
    # Add the CLI Core library for Python for authentication (development only!)
    pip install azure-cli-core
    

    Nota

    Si Python está instalado en todos los usuarios, estos comando deben ejecutarse desde una consola con privilegios elevados.

  5. Compruebe que se han instalado las bibliotecas. azure-mgmt-resourcegraph debe tener la versión 2.0.0 o superior; azure-mgmt-resource debe tener la versión 9.0.0 o superior; y azure-cli-core debe tener la versión 2.5.0.

    # Check each installed library
    pip show azure-mgmt-resourcegraph azure-mgmt-resource azure-cli-core
    

Ejecutar la primera consulta de Resource Graph

Con las bibliotecas de Python agregadas al entorno elegido, es el momento de probar una consulta simple de Resource Graph basada en suscripción. La consulta devolverá los cinco primeros recursos de Azure con el nombre y el tipo de recurso de cada recurso. Para realizar una consulta por grupo de administración, use el parámetro management_groups con QueryRequest.

  1. Ejecute la primera consulta de Azure Resource Graph mediante las bibliotecas instaladas y el método resources:

    # Import Azure Resource Graph library
    import azure.mgmt.resourcegraph as arg
    
    # Import specific methods and models from other libraries
    from azure.common.credentials import get_azure_cli_credentials
    from azure.common.client_factory import get_client_from_cli_profile
    from azure.mgmt.resource import SubscriptionClient
    
    # Wrap all the work in a function
    def getresources( strQuery ):
        # Get your credentials from Azure CLI (development only!) and get your subscription list
        subsClient = get_client_from_cli_profile(SubscriptionClient)
        subsRaw = []
        for sub in subsClient.subscriptions.list():
            subsRaw.append(sub.as_dict())
        subsList = []
        for sub in subsRaw:
            subsList.append(sub.get('subscription_id'))
    
        # Create Azure Resource Graph client and set options
        argClient = get_client_from_cli_profile(arg.ResourceGraphClient)
        argQueryOptions = arg.models.QueryRequestOptions(result_format="objectArray")
    
        # Create query
        argQuery = arg.models.QueryRequest(subscriptions=subsList, query=strQuery, options=argQueryOptions)
    
        # Run query
        argResults = argClient.resources(argQuery)
    
        # Show Python object
        print(argResults)
    
    getresources("Resources | project name, type | limit 5")
    

    Nota

    Como esta consulta de ejemplo no proporciona un modificador de ordenación como order by, es probable que al ejecutar esta consulta varias veces se produzca un conjunto diferente de recursos por solicitud.

  2. Actualice la llamada a getresources y cambie la consulta a order by la propiedad Nombre:

    getresources("Resources | project name, type | limit 5 | order by name asc")
    

    Nota

    Al igual que con la primera consulta, es probable que al ejecutar esta consulta varias veces se produzca un conjunto diferente de recursos por solicitud. El orden de los comandos de consulta es importante. En este ejemplo, el order by viene después del limit. Este orden de comandos limita primero los resultados de la consulta y, luego, los ordena.

  3. Actualice la llamada a getresources y cambie la consulta a primero order by la propiedad Nombre y, luego, limit a los cinco primeros resultados:

    getresources("Resources | project name, type | order by name asc | limit 5")
    

Cuando la consulta final se ejecuta varias veces, suponiendo que nada cambie en su entorno, los resultados devueltos serán coherentes y estarán ordenados por la propiedad Nombre, pero todavía limitados a los cinco primeros resultados.

Limpieza de recursos

Si desea quitar las bibliotecas instaladas del entorno de Python, puede hacerlo mediante el comando siguiente:

# Remove the installed libraries from the Python environment
pip uninstall azure-mgmt-resourcegraph azure-mgmt-resource azure-cli-core

Pasos siguientes

En este inicio rápido, ha agregado las bibliotecas de Resource Graph al entorno de Python y ha ejecutado la primera consulta. Para más información sobre el lenguaje de Resource Graph, vaya a la página de detalles del lenguaje de consulta.