Exemple : Utilisez les bibliothèques Azure pour lister les groupes de ressources et les ressources
Cet exemple montre comment utiliser les bibliothèques de gestion du SDK Azure dans un script Python pour effectuer deux tâches :
- Lister tous les groupes de ressources d’un abonnement Azure.
- Lister les ressources présentes dans un groupe de ressources spécifique.
Sauf indication contraire, toutes les commandes de cet article fonctionnent de la même façon dans les interpréteurs de commandes Windows et bash Linux/macOS.
Les Commandes CLI Azure équivalentes sont listées plus loin dans cet article.
1 : Configurez votre environnement de développement local
Si vous ne l’avez pas encore fait, configurez un environnement où vous pouvez exécuter ce code. Voici quelques options possibles :
Configurez un environnement virtuel Python en utilisant
venv
ou votre outil de choix. Vous pouvez créer l’environnement virtuel localement ou dans Azure Cloud Shell et y exécuter le code. Assurez-vous d’activer l’environnement virtuel pour commencer à l’utiliser.Utilisez un environnement conda.
Utilisez un conteneur de développement dans Visual Studio Code ou GitHub Codespaces.
2 : Installez les packages de bibliothèque Azure
Créez un fichier nommé requirements.txt avec le contenu suivant :
azure-mgmt-resource
azure-identity
Dans un terminal ou une invite de commandes avec l’environnement virtuel activé, installez les éléments requis :
pip install -r requirements.txt
3 : Écrire du code pour travailler avec des groupes de ressources
3a. Lister les groupes de ressources d’un abonnement
Créez un fichier Python nommé list_groups.py avec le code suivant. Les commentaires expliquent les détails :
# 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. Lister les ressources présentes dans un groupe de ressources spécifique
Créez un fichier Python nommé list_resources.py avec le code suivant. Les commentaires expliquent les détails.
Par défaut, le code liste les ressources dans « myResourceGroup ». Pour utiliser un autre groupe de ressources, affectez à la variable d’environnement RESOURCE_GROUP_NAME
le nom de groupe souhaité.
# 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}}")
Authentification dans le code
Plus loin dans cet article, vous vous connecterez à Azure avec l’Azure CLI pour exécuter le code d’exemple. Si votre compte a les permissions pour créer et lister des groupes de ressources dans votre abonnement Azure, le code s’exécutera avec succès.
Pour utiliser un tel code dans un script de production, vous pouvez définir des variables d’environnement pour utiliser une méthode d’authentification basée sur un principal de service. Pour en savoir plus, veuillez consulter la section Comment authentifier les applications Python avec les services Azure. Vous devez vous assurer que le principal de service dispose de permissions suffisantes pour créer et lister des groupes de ressources dans votre abonnement en lui attribuant un rôle approprié dans Azure; par exemple, le rôle de Contributeur sur votre abonnement.
Liens de référence pour les classes utilisées dans le code
4 : Exécuter les scripts
Si ce n’est déjà fait, connectez-vous à Azure en utilisant l’Azure CLI :
az login
Définissez la variable d’environnement
AZURE_SUBSCRIPTION_ID
à votre ID d’abonnement. (Vous pouvez exécuter la commande az account show et obtenir votre ID d’abonnement à partir de la propriétéid
dans la sortie) :Lister tous les groupes de ressources de l’abonnement :
python list_groups.py
Liste toutes les ressources d’un groupe de ressources :
python list_resources.py
Par défaut, le code liste les ressources dans « myResourceGroup ». Pour utiliser un autre groupe de ressources, affectez à la variable d’environnement
RESOURCE_GROUP_NAME
le nom de groupe souhaité.
Pour référence : commandes Azure CLI équivalentes
La commande Azure CLI suivante liste les groupes de ressources dans un abonnement :
az group list
La commande suivante liste les ressources dans le groupe de ressources « myResourceGroup » dans la région centralus (l’argument location
est nécessaire pour identifier un centre de données spécifique) :
az resource list --resource-group myResourceGroup --location centralus
Voir aussi
- Exemple : Approvisionner un groupe de ressources
- Exemple : Approvisionner Azure Storage
- Exemple : Utiliser le stockage Azure
- Exemple : Approvisionner une application web et déployer du code
- Exemple : Approvisionner et interroger une base de données
- Exemple : Approvisionner une machine virtuelle
- Utiliser des disques managés Azure avec des machines virtuelles
- Répondre à une courte enquête sur le SDK Azure pour Python