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.
Se non è già stato fatto, configurare un ambiente in cui è possibile eseguire questo codice. Di seguito sono riportate alcuni opzioni:
Configurare un ambiente virtuale Python usando o lo
venv
strumento preferito. È possibile creare l'ambiente virtuale in locale o in Azure Cloud Shell ed eseguire il codice. Assicurarsi di attivare l'ambiente virtuale per iniziare a usarlo.Usare un ambiente conda.
Usare un contenitore di sviluppo in Visual Studio Code o GitHub Codespaces.
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
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}")
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}}")
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.
Se non è già stato fatto, accedere ad Azure usando l'interfaccia della riga di comando di Azure:
az login
Impostare la
AZURE_SUBSCRIPTION_ID
variabile di ambiente sull'ID sottoscrizione. È possibile eseguire il comando az account show e ottenere l'IDid
sottoscrizione dalla proprietà nell'output:Elencare tutti i gruppi di risorse nella sottoscrizione:
python list_groups.py
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.
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
- Esempio: Effettuare il provisioning di un gruppo di risorse
- Esempio: Effettuare il provisioning di Archiviazione di Azure
- Esempio: Usare Archiviazione di Azure
- Esempio: Effettuare il provisioning di un'app Web e distribuire il codice
- Esempio: Effettuare il provisioning ed eseguire query su un database
- Esempio: Effettuare il provisioning di una macchina virtuale
- Usare Azure Managed Disks con le macchine virtuali
- Completare un breve sondaggio su Azure SDK per Python