Esempio: usare le librerie di Azure per elencare gruppi di risorse e risorse

Questo esempio illustra come usare le librerie di gestione di Azure SDK in uno script Python per eseguire due attività:

  • Elencare tutti i gruppi di risorse in una sottoscrizione di Azure.
  • Elencare le risorse entro un gruppo di risorse specifico.

Se non diversamente specificato, tutti i comandi di questo articolo funzionano allo stesso modo nella shell Bash Linux/macOS e nella shell dei comandi di Windows.

I comandi equivalenti dell'interfaccia della riga di comando di Azure sono elencati più avanti in questo articolo.

1: Configurare l'ambiente di sviluppo locale

Se non è già stato fatto, configurare un ambiente in cui è possibile eseguire questo codice. Di seguito sono riportate alcuni opzioni:

2: Installare i pacchetti della libreria di Azure

Creare un file denominato requirements.txt con il contenuto seguente:

azure-mgmt-resource
azure-identity

In un terminale o da un prompt dei comandi con l'ambiente virtuale attivato, installare i requisiti:

pip install -r requirements.txt

3: Scrivere codice per lavorare con i gruppi di risorse

3a. Elencare i gruppi di risorse in una sottoscrizione

Creare un file Python denominato list_groups.py con il codice seguente. I commenti spiegano i dettagli:

# 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. Elencare le risorse entro un gruppo di risorse specifico

Creare un file Python denominato list_resources.py con il codice seguente. I commenti spiegano i dettagli.

Per impostazione predefinita, il codice elenca le risorse in "myResourceGroup". Per usare un gruppo di risorse diverso, impostare la RESOURCE_GROUP_NAME variabile di ambiente sul nome del gruppo desiderato.

# 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}}")

Autenticazione nel codice

Più avanti in questo articolo si accede ad Azure con l'interfaccia della riga di comando di Azure per eseguire il codice di esempio. Se l'account dispone delle autorizzazioni per creare ed elencare i gruppi di risorse nella sottoscrizione di Azure, il codice verrà eseguito correttamente.

Per usare questo codice in uno script di produzione, è possibile impostare le variabili di ambiente per usare un metodo basato su entità servizio per l'autenticazione. Per altre informazioni, vedere Come autenticare le app Python con i servizi di Azure. È necessario assicurarsi che l'entità servizio disponga di autorizzazioni sufficienti per creare ed elencare i gruppi di risorse nella sottoscrizione assegnandole un ruolo appropriato in Azure, ad esempio il ruolo Collaboratore nella sottoscrizione.

4: Eseguire gli script

  1. Se non è già stato fatto, accedere ad Azure usando l'interfaccia della riga di comando di Azure:

    az login
    
  2. Impostare la AZURE_SUBSCRIPTION_ID variabile di ambiente sull'ID sottoscrizione. È possibile eseguire il comando az account show e ottenere l'ID id sottoscrizione dalla proprietà nell'output:

    set AZURE_SUBSCRIPTION_ID=00000000-0000-0000-0000-000000000000
    
  3. Elencare tutti i gruppi di risorse nella sottoscrizione:

    python list_groups.py
    
  4. Elencare tutte le risorse in un gruppo di risorse:

    python list_resources.py
    

    Per impostazione predefinita, il codice elenca le risorse in "myResourceGroup". Per usare un gruppo di risorse diverso, impostare la RESOURCE_GROUP_NAME variabile di ambiente sul nome del gruppo desiderato.

Per riferimento: comandi equivalenti dell'interfaccia della riga di comando di Azure

Il comando dell'interfaccia della riga di comando di Azure seguente elenca i gruppi di risorse in una sottoscrizione:

az group list

Il comando seguente elenca le risorse all'interno di "myResourceGroup" nell'area centralus (l'argomento location è necessario per identificare un data center specifico):

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

Vedi anche