Quickstart: uw eerste Resource Graph-query uitvoeren met Python

De eerste stap voor het gebruik van Azure Resource Graph bestaat uit het controleren of de vereiste bibliotheken voor Python zijn geïnstalleerd. In deze quickstart doorloopt u het proces voor het toevoegen van de bibliotheken aan uw Python-installatie.

Aan het einde van dit proces hebt u de bibliotheken toegevoegd aan uw Python-installatie en hebt u uw eerste Resource Graph-query uitgevoerd.

Vereisten

Als u nog geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.

Azure Cloud Shell

Azure host Azure Cloud Shell, een interactieve shell-omgeving die u via uw browser kunt gebruiken. U kunt Bash of PowerShell gebruiken met Cloud Shell om met Azure-services te werken. U kunt de vooraf geïnstalleerde Cloud Shell-opdrachten gebruiken om de code in dit artikel uit te voeren zonder dat u iets hoeft te installeren in uw lokale omgeving.

Om Azure Cloud Shell op te starten:

Optie Voorbeeld/koppeling
Selecteer Uitproberen in de rechterbovenhoek van een code- of opdrachtblok. Als u Proberen selecteert, wordt de code of opdracht niet automatisch gekopieerd naar Cloud Shell. Schermopname van een voorbeeld van Probeer het nu voor Azure Cloud Shell.
Ga naar https://shell.azure.com, of selecteer de knop Cloud Shell starten om Cloud Shell in uw browser te openen. Schermopname waarin te zien is hoe u Cloud Shell in een nieuw venster start.
Klik op de knop Cloud Shell in het menu in de balk rechtsboven in de Azure-portal. Schermopname van de knop Cloud Shell in Azure Portal

Azure Cloud Shell gebruiken:

  1. Start Cloud Shell.

  2. Selecteer de knop Kopiëren op een codeblok (of opdrachtblok) om de code of opdracht te kopiëren.

  3. Plak de code of opdracht in de Cloud Shell sessie door Ctrl+Shift+V te selecteren in Windows en Linux of door Cmd+Shift+V in macOS te selecteren.

  4. Selecteer Enter om de code of opdracht uit te voeren.

De Resource Graph-bibliotheek toevoegen

De bibliotheek moet worden toegevoegd opdat Python query's kan uitvoeren voor Azure Resource Graph. Deze bibliotheek werkt waar Python kan worden gebruikt, inclusief bash in Windows 10 of lokaal geïnstalleerd.

  1. Controleer of de meest recente versie van Python is geïnstalleerd (minimaal 3.8). Als deze nog niet is geïnstalleerd, downloadt u deze op Python.org.

  2. Controleer of de meest recente Azure CLI is geïnstalleerd (minimaal 2.5.1). Als deze nog niet is geïnstalleerd, raadpleegt u De Azure CLI installeren.

    Notitie

    Azure CLI is vereist om Python in te schakelen voor gebruik van de op CLI gebaseerde verificatie in de volgende voorbeelden. Zie Authenticate using the Azure management libraries for Python (Verificatie met de Azure-beheerbibliotheken voor Python) voor meer informatie over andere opties.

  3. Verifieer via Azure CLI.

    az login
    
  4. Installeer in de gewenste Python-omgeving de vereiste bibliotheken voor 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
    
    # Add the Azure identity library for Python
    pip install azure.identity
    

    Notitie

    Als Python is geïnstalleerd voor alle gebruikers, moet deze opdracht worden uitgevoerd vanaf een console met verhoogde bevoegdheden.

  5. Controleer of de bibliotheken zijn geïnstalleerd. azure-mgmt-resourcegraph moet 2.0.0 of hoger zijn, azure-mgmt-resource moet 9.0.0 of hoger zijn en azure-cli-core moet 2.5.0 of hoger zijn.

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

Uw eerste Resource Graph-query uitvoeren

Nu de Python-bibliotheken zijn toegevoegd aan uw gewenste omgeving, is het tijd om een eenvoudige Resource Graph-query op basis van een abonnement uit te proberen. De query retourneert de eerste vijf Azure-resources met de naam en het resourcetype van elke resource. Als u een query wilt uitvoeren per beheergroep, gebruikt u de management_groups parameter met QueryRequest.

  1. Voer als volgt uw eerste Azure Resource Graph-query uit met de geïnstalleerde bibliotheken en de resources-methode:

    # Import Azure Resource Graph library
    import azure.mgmt.resourcegraph as arg
    
    # Import specific methods and models from other libraries
    from azure.mgmt.resource import SubscriptionClient
    from azure.identity import AzureCliCredential
    
    # Wrap all the work in a function
    def getresources( strQuery ):
        # Get your credentials from Azure CLI (development only!) and get your subscription list
        credential = AzureCliCredential()
        subsClient = SubscriptionClient(credential)
        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 = arg.ResourceGraphClient(credential)
        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")
    

    Notitie

    Omdat deze voorbeeldquery geen sorteermodificator geeft, bijvoorbeeld order by, zal deze query waarschijnlijk per aanvraag een andere set resources opleveren als de query meerdere keren wordt uitgevoerd.

  2. Werk de aanroep bij naar getresources en wijzig de query om te order by op de eigenschap Naam:

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

    Notitie

    Net als bij de eerste query zal deze query waarschijnlijk per aanvraag een andere set resources opleveren als de query meerdere keren wordt uitgevoerd. De volgorde van de queryopdrachten is belangrijk. In dit voorbeeld komt order by na limit. Met deze opdracht worden de queryresultaten eerst beperkt en vervolgens gerangschikt.

  3. Werk de aanroep bij naar getresources en wijzig de query om eerst te order by de eigenschap Naam en daarna de resultaten van de top vijf te limit:

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

Wanneer de laatste query meerdere keren wordt uitgevoerd, ervan uitgaande dat niets in uw omgeving verandert, zijn de geretourneerde resultaten consistent en gesorteerd op de eigenschap Naam, maar nog steeds beperkt tot de top vijf.

Resources opschonen

Als u de geïnstalleerde bibliotheken uit uw Python-omgeving wilt verwijderen, kunt u dit doen met de volgende opdracht:

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

Volgende stappen

In deze quickstart hebt u de Resource Graph-bibliotheken toegevoegd aan uw Python-omgeving en uw eerste query uitgevoerd. Ga verder naar de pagina met details van de querytaal voor meer informatie over de taal van Resource Graph.