Lire en anglais

Partager via


Gérer des groupes de ressources Azure à l’aide de Python

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écuter az login en premier pour vous authentifier.

  • Variable d’environnement avec votre ID d’abonnement Azure. Pour obtenir votre ID d’abonnement Azure, utilisez :

    Azure CLI
    az account show --name 'your subscription name' --query id -o tsv
    

    Pour définir la valeur, utilisez l’option pour votre environnement.

    Bash
    export AZURE_SUBSCRIPTION_ID=your-subscription-id
    

    Après avoir ajouté les variables d’environnement, exécutez source ~/.bashrc à partir de la fenêtre de console pour appliquer les changements.

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.

Python
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.

Python
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.

Python
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.

Python
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.

Python
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.

Python
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 :

JSON
{
  "$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.

Python
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.

Python
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.

Python
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

Remarque : L’auteur a créé cet article avec l’aide de l’IA. En savoir plus