Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Découvrez comment utiliser Python avec Azure Resource Manager pour gérer vos groupes de ressources Azure.
Prérequis
Python 3.8 ou ultérieur installé. Pour installer la dernière version, consultez Python.org.
Les packages de bibliothèque Azure suivants pour Python sont installés dans votre environnement virtuel. Pour installer l’un des packages, utilisez
pip install {package-name}
:- azure-identity
- azure-mgmt-resource
- azure-mgmt-storage
Si des versions antérieures de ces packages sont déjà installées dans votre environnement virtuel, vous aurez peut-être besoin de les mettre à jour avec
pip install --upgrade {package-name}
.Les exemples de cet article utilisent l’authentification reposant sur CLI (
AzureCliCredential
). En fonction de votre environnement, vous devrez peut-être exécuteraz login
en premier pour vous authentifier.Variable d’environnement avec votre ID d’abonnement Azure. Pour obtenir votre ID d’abonnement Azure, utilisez :
az account show --name 'your subscription name' --query id -o tsv
Pour définir la valeur, utilisez l’option pour votre environnement.
setx AZURE_SUBSCRIPTION_ID your-subscription-id
Remarque
Si vous avez uniquement besoin d'accéder à la variable d'environnement dans la console en cours d'exécution, définissez la variable d'environnement avec
set
au lieu desetx
.Après avoir ajouté les variables d'environnement, vous devrez peut-être redémarrer tous les programmes en cours d'exécution qui doivent lire la variable d'environnement, y compris la fenêtre de console. Par exemple, si vous utilisez Visual Studio comme éditeur, redémarrez Visual Studio avant d’exécuter l’exemple.
Présentation des groupes de ressources
Un groupe de ressources est un conteneur réunissant les ressources associées d’une solution Azure. Le groupe de ressources peut inclure toutes les ressources de la solution, ou uniquement celles que vous souhaitez gérer en tant que groupe. Pour déterminer comment ajouter des ressources aux groupes de ressources, choisissez l’approche la plus pertinente pour votre organisation. En règle générale, il convient d’ajouter des ressources qui partagent le même cycle de vie dans un même groupe de ressources afin de pouvoir facilement les déployer, les mettre à jour et les supprimer en tant que groupe.
Le groupe de ressources stocke des métadonnées sur les ressources. Lorsque vous spécifiez un emplacement pour le groupe de ressources, vous indiquez où stocker ces métadonnées. Pour des raisons de conformité, vous devrez peut-être vous assurer que vos données sont stockées dans une région spécifique.
Créer des groupes de ressources
Pour créer un groupe de ressources, utilisez ResourceManagementClient.resource_groups.create_or_update.
import os
from azure.identity import AzureCliCredential
from azure.mgmt.resource import ResourceManagementClient
credential = AzureCliCredential()
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]
resource_client = ResourceManagementClient(credential, subscription_id)
rg_result = resource_client.resource_groups.create_or_update(
"exampleGroup",
{
"location": "westus"
}
)
print(f"Provisioned resource group with ID: {rg_result.id}")
Répertorier les groupes de ressources
Pour obtenir la liste des groupes de ressources dans votre abonnement, utilisez ResourceManagementClient.resource_groups.list.
import os
from azure.identity import AzureCliCredential
from azure.mgmt.resource import ResourceManagementClient
credential = AzureCliCredential()
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]
resource_client = ResourceManagementClient(credential, subscription_id)
rg_list = resource_client.resource_groups.list()
for rg in rg_list:
print(rg.name)
Pour obtenir un groupe de ressources, utilisez ResourceManagementClient.resource_groups.get et fournissez le nom du groupe de ressources.
import os
from azure.identity import AzureCliCredential
from azure.mgmt.resource import ResourceManagementClient
credential = AzureCliCredential()
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]
resource_client = ResourceManagementClient(credential, subscription_id)
rg_result = resource_client.resource_groups.get("exampleGroup")
print(f"Retrieved resource group {rg_result.name} in the {rg_result.location} region with resource ID {rg_result.id}")
Supprimer des groupes de ressources
Pour supprimer un groupe de ressources, utilisez ResourceManagementClient.resource_groups.begin_delete.
import os
from azure.identity import AzureCliCredential
from azure.mgmt.resource import ResourceManagementClient
credential = AzureCliCredential()
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]
resource_client = ResourceManagementClient(credential, subscription_id)
rg_result = resource_client.resource_groups.begin_delete("exampleGroup")
Pour plus d’informations sur l’ordre dans lequel Azure Resource Manager supprime des ressources, voir Suppression d’un groupe de ressources par Azure Resource Manager.
Déployer des ressources
Vous pouvez déployer des ressources Azure à l’aide de Python ou en déployant un modèle Azure Resource Manager (modèle ARM).
Déployer des ressources à l’aide de classes Python
L’exemple suivant crée un compte de stockage à l’aide de StorageManagementClient.storage_accounts.begin_create. Le nom du compte de stockage doit être unique dans Azure.
import os
import random
from azure.identity import AzureCliCredential
from azure.mgmt.storage import StorageManagementClient
credential = AzureCliCredential()
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]
random_postfix = ''.join(random.choices('abcdefghijklmnopqrstuvwxyz1234567890', k=13))
storage_account_name = "demostore" + random_postfix
storage_client = StorageManagementClient(credential, subscription_id)
storage_account_result = storage_client.storage_accounts.begin_create(
"exampleGroup",
storage_account_name,
{
"location": "westus",
"sku": {
"name": "Standard_LRS"
}
}
)
Déployer des ressources à l’aide d’un modèle ARM
Pour déployer un modèle ARM, utilisez ResourceManagementClient.deployments.begin_create_or_update. L’exemple suivant nécessite un modèle local nommé storage.json
.
import os
import json
from azure.identity import AzureCliCredential
from azure.mgmt.resource import ResourceManagementClient
from azure.mgmt.resource.resources.models import DeploymentMode
credential = AzureCliCredential()
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]
resource_client = ResourceManagementClient(credential, subscription_id)
with open("storage.json", "r") as template_file:
template_body = json.load(template_file)
rg_deployment_result = resource_client.deployments.begin_create_or_update(
"exampleGroup",
"exampleDeployment",
{
"properties": {
"template": template_body,
"parameters": {
"storagePrefix": {
"value": "demostore"
},
},
"mode": DeploymentMode.incremental
}
}
)
L’exemple suivant montre le modèle ARM nommé storage.json
que vous déployez :
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storagePrefix": {
"type": "string",
"minLength": 3,
"maxLength": 11
}
},
"variables": {
"uniqueStorageName": "[concat(parameters('storagePrefix'), uniqueString(resourceGroup().id))]"
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2022-09-01",
"name": "[variables('uniqueStorageName')]",
"location": "eastus",
"sku": {
"name": "Standard_LRS"
},
"kind": "StorageV2",
"properties": {
"supportsHttpsTrafficOnly": true
}
}
]
}
Pour des informations complètes sur le déploiement d’un modèle ARM, consultez Déployer des ressources à l’aide de modèles ARM et d’Azure CLI.
Verrouiller des groupes de ressources
Le verrouillage empêche les utilisateurs de votre organisation de supprimer ou de modifier accidentellement des ressources critiques.
Pour empêcher la suppression d’un groupe de ressources et de ses ressources, utilisez ManagementLockClient.management_locks.create_or_update_at_resource_group_level.
import os
from azure.identity import AzureCliCredential
from azure.mgmt.resource import ManagementLockClient
credential = AzureCliCredential()
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]
lock_client = ManagementLockClient(credential, subscription_id)
lock_result = lock_client.management_locks.create_or_update_at_resource_group_level(
"exampleGroup",
"lockGroup",
{
"level": "CanNotDelete"
}
)
Pour placer un verrou sur un groupe de ressources, utilisez ManagementLockClient.management_locks.list_at_resource_group_level.
import os
from azure.identity import AzureCliCredential
from azure.mgmt.resource import ManagementLockClient
credential = AzureCliCredential()
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]
lock_client = ManagementLockClient(credential, subscription_id)
lock_result = lock_client.management_locks.get_at_resource_group_level("exampleGroup", "lockGroup")
print(f"Lock {lock_result.name} applies {lock_result.level} lock")
Pour supprimer un verrou sur un groupe de ressources, utilisez ManagementLockClient.management_locks.delete_at_resource_group_level.
import os
from azure.identity import AzureCliCredential
from azure.mgmt.resource import ManagementLockClient
credential = AzureCliCredential()
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]
lock_client = ManagementLockClient(credential, subscription_id)
lock_client.management_locks.delete_at_resource_group_level("exampleGroup", "lockGroup")
Pour plus d’informations, consultez Verrouiller des ressources avec Azure Resource Manager.
Baliser des groupes de ressources
Vous pouvez appliquer des balises à des groupes de ressources pour organiser logiquement vos ressources. Pour plus d’informations, voir Organisation des ressources Azure à l’aide de balises.
Exporter des groupes de ressources dans des modèles
Pour aider à créer des modèles ARM, vous pouvez exporter un modèle à partir de ressources existantes. Pour plus d’informations, consultez Utiliser le Portail Azure pour exporter un modèle.
Gérer l'accès aux groupes de ressources
Le contrôle d’accès en fonction du rôle Azure (Azure RBAC) vous permet de gérer l’accès aux ressources dans Azure. Pour plus d’informations, consultez Ajouter ou supprimer des attributions de rôle Azure à l’aide d’Azure CLI.
Étapes suivantes
- Pour vous familiariser avec Azure Resource Manager, consultez Vue d’ensemble d’Azure Resource Manager.
- Pour plus d’informations sur les options d’authentification, consultez Authentifier des applications Python auprès des services Azure à l’aide du Kit de développement logiciel (SDK) Azure pour Python.