Partager via


Gérer des ressources Azure à l’aide Python

Découvrez comment utiliser Azure Python avec Azure Resource Manager pour gérer vos ressources Azure. Pour gérer des groupes de ressources, consultez Gérer des groupes de ressources Azure à l’aide de Python.

Déployer des ressources sur un groupe de ressources existant

Vous pouvez déployer des ressources Azure directement à l’aide de Python ou déployer un modèle Azure Resource Manager (modèle ARM) pour créer des ressources Azure.

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éploiement d’un modèle

Pour déployer un modèle ARM, utilisez ResourceManagementClient.deployments.begin_create_or_update. L’exemple suivant déploie un modèle distant. Ce modèle crée un compte de stockage.

import os
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)

resource_group_name = input("Enter the resource group name: ")
location = input("Enter the location (i.e. centralus): ")
template_uri = "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.json"

rg_deployment_result = resource_client.deployments.begin_create_or_update(
    resource_group_name,
    "exampleDeployment",
    {
        "properties": {
            "templateLink": {
                "uri": template_uri
            },
            "parameters": {
                "location": {
                    "value": location
                },
            },
            "mode": DeploymentMode.incremental
        }
    }
)

Déployer un groupe de ressources et des ressources

Vous pouvez créer un groupe de ressources et y déployer des ressources. Pour plus d'informations, consultez Créer un groupe de ressources et déployer des ressources.

Déployer des ressources sur plusieurs abonnements ou groupes de ressources

En général, vous déployez toutes les ressources dans votre modèle sur un seul groupe de ressources. Toutefois, il existe des scénarios dans lesquels vous pouvez souhaitez déployer un ensemble de ressources, tout en les plaçant dans différents groupes de ressources ou abonnements. Pour plus d’informations, consultez Déployer des ressources Azure sur plusieurs abonnements ou groupes de ressources.

Supprimer des ressources

L’exemple suivant montre comment supprimer un compte de stockage.

import os
from azure.identity import AzureCliCredential
from azure.mgmt.storage import StorageManagementClient

credential = AzureCliCredential()
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]

storage_client = StorageManagementClient(credential, subscription_id)

resource_group_name = "demoGroup"
storage_account_name = "demostore"

storage_account = storage_client.storage_accounts.delete(
    resource_group_name,
    storage_account_name
)

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éplacer des ressources

L’exemple suivant montre comment déplacer un compte de stockage depuis un groupe de ressources vers un autre.

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)

src_resource_group_name = "sourceGroup"
dest_resource_group_name = "destinationGroup"
storage_account_name = "demostore"

dest_resource_group = resource_client.resource_groups.get(dest_resource_group_name)

storage_account = resource_client.resources.get(
    src_resource_group_name, "Microsoft.Storage", "", "storageAccounts", storage_account_name, "2022-09-01"
)

move_result = resource_client.resources.begin_move_resources(
    src_resource_group_name,
    {
        "resources": [storage_account.id],
        "targetResourceGroup": dest_resource_group.id,
    }
)

Pour plus d’informations, consultez la page Déplacement de ressources vers un nouveau groupe de ressources ou un abonnement.

Verrouiller des ressources

Le verrouillage empêche d’autres utilisateurs de votre organisation de supprimer ou de modifier accidentellement des ressources stratégiques, telles qu’une ressource, un groupe de ressources ou un abonnement Azure.

L’exemple suivant verrouille un site Web afin d’empêcher sa suppression.

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_level(
    "exampleGroup",
    "Microsoft.Web",
    "",
    "sites",
    "examplesite",
    "lockSite",
    {
        "level": "CanNotDelete"
    }
)

Le script suivant obtient tous les verrous pour un compte de stockage :

import os
from azure.identity import AzureCliCredential
from azure.mgmt.resource import ResourceManagementClient
from azure.mgmt.resource.locks import ManagementLockClient

credential = AzureCliCredential()
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]

resource_client = ResourceManagementClient(credential, subscription_id)
lock_client = ManagementLockClient(credential, subscription_id)

resource_group_name = "demoGroup"
storage_account_name = "demostore"

resource = resource_client.resources.get_by_id(
    f"/subscriptions/{subscription_id}/resourceGroups/{resource_group_name}/providers/Microsoft.Storage/storageAccounts/{storage_account_name}",
    "2021-04-01"
)

locks = lock_client.management_locks.list_at_resource_level(
    resource_group_name,
    "Microsoft.Storage",
    "",
    "storageAccounts",
    storage_account_name
)

for lock in locks:
    print(f"Lock Name: {lock.name}, Lock Level: {lock.level}")

Le script suivant supprime un verrou sur un site Web :

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_level(
    "exampleGroup",
    "Microsoft.Web",
    "",
    "sites",
    "examplesite",
    "lockSite"
)

Pour plus d’informations, consultez Verrouiller des ressources avec Azure Resource Manager.

Baliser des ressources

Le balisage vous permet d’organiser logiquement votre groupe de ressources et vos ressources. Pour plus d’informations, voir Organisation des ressources Azure à l’aide de balises.

Étapes suivantes