Compartir a través de


Ejemplo: Uso de las bibliotecas de Azure para crear un grupo de recursos

En este ejemplo se muestra cómo usar las bibliotecas de administración del SDK de Azure en un script de Python para crear un grupo de recursos. (El comando equivalente de la CLI de Azure se proporciona más adelante en este artículo. Si prefiere usar Azure Portal, consulte Creación de grupos de recursos).

Todos los comandos de este artículo funcionan iguales en los shells de comandos de Linux/macOS y Windows, a menos que se indique.

1: Configuración del entorno de desarrollo local

Si aún no lo ha hecho, configure un entorno en el que pueda ejecutar este código. Estas son algunas opciones:

  • Configure un entorno virtual de Python mediante venv o la herramienta que prefiera. Para empezar a usar el entorno virtual, asegúrese de activarlo. Para instalar Python, consulte Instalación de Python.

    #!/bin/bash
    # Create a virtual environment
    python -m venv .venv
    # Activate the virtual environment
    source .venv/Scripts/activate # only required for Windows (Git Bash)
    
  • Usa un entorno conda . Para instalar Conda, consulte Instalación de Miniconda.

  • Usa un contenedor de desarrollo en Visual Studio Code o en GitHub Codespaces .

2: Instalación de los paquetes de biblioteca de Azure

  1. En la consola, cree un archivo requirements.txt que muestre las bibliotecas de administración que se usan en este ejemplo:

    azure-mgmt-resource
    azure-identity
    
  2. En la consola con el entorno virtual activado, instale los requisitos:

    pip install -r requirements.txt
    

3. Establecer variables de entorno

En este paso, establecerá las variables de entorno para usarlas en el código de este artículo. El código usa el os.environ método para recuperar los valores.

#!/bin/bash
export AZURE_RESOURCE_GROUP_NAME=<ResourceGroupName> # Change to your preferred resource group name
export LOCATION=<Location> # Change to your preferred region
export AZURE_SUBSCRIPTION_ID=$(az account show --query id --output tsv)

4: Escribir código para crear un grupo de recursos

En este paso, creará un archivo de Python denominado provision_blob.py con el código siguiente. Este script de Python usa el SDK de Azure para bibliotecas de administración de Python para crear un grupo de recursos en la suscripción de Azure.

Cree un archivo de Python denominado provision_rg.py con el código siguiente. Los comentarios explican los detalles:

# Import the needed credential and management objects from the libraries.
import os

from azure.identity import DefaultAzureCredential
from azure.mgmt.resource import ResourceManagementClient

# Acquire a credential object using DevaultAzureCredential.
credential = DefaultAzureCredential()

# Retrieve subscription ID from environment variable.
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]

# Retrieve resource group name and location from environment variables
RESOURCE_GROUP_NAME = os.environ["AZURE_RESOURCE_GROUP_NAME"]
LOCATION = os.environ["LOCATION"]

# Obtain the management object for resources.
resource_client = ResourceManagementClient(credential, subscription_id)

# Provision the resource group.
rg_result = resource_client.resource_groups.create_or_update(RESOURCE_GROUP_NAME,
    { "location": LOCATION })

print(f"Provisioned resource group {rg_result.name}")

# Within the ResourceManagementClient is an object named resource_groups,
# which is of class ResourceGroupsOperations, which contains methods like
# create_or_update.
#
# The second parameter to create_or_update here is technically a ResourceGroup
# object. You can create the object directly using ResourceGroup(location=
# LOCATION) or you can express the object as inline JSON as shown here. For
# details, see Inline JSON pattern for object arguments at
# https://learn.microsoft.com/azure/developer/python/sdk
# /azure-sdk-library-usage-patterns#inline-json-pattern-for-object-arguments

print(
    f"Provisioned resource group {rg_result.name} in the {rg_result.location} region"
)

# The return value is another ResourceGroup object with all the details of the
# new group. In this case the call is synchronous: the resource group has been
# provisioned by the time the call returns.

# To update the resource group, repeat the call with different properties, such
# as tags:
rg_result = resource_client.resource_groups.create_or_update(
    RESOURCE_GROUP_NAME,
    {
        "location": LOCATION,
        "tags": {"environment": "test", "department": "tech"},
    },
)

print(f"Updated resource group {rg_result.name} with tags")

# Optional lines to delete the resource group. begin_delete is asynchronous.
# poller = resource_client.resource_groups.begin_delete(rg_result.name)
# result = poller.result()

Autenticación en el código

Más adelante en este artículo, inicia sesión en Azure mediante la CLI de Azure para ejecutar el código de ejemplo. Si la cuenta tiene permisos suficientes para crear grupos de recursos y recursos de almacenamiento en la suscripción de Azure, el script debe ejecutarse correctamente sin configuración adicional.

Para usar este código en un entorno de producción, autentíquese mediante una entidad de servicio estableciendo variables de entorno. Este enfoque permite el acceso seguro y automatizado sin depender del inicio de sesión interactivo. Para obtener instrucciones detalladas, consulte Autenticación de aplicaciones de Python con servicios de Azure.

Asegúrese de que a la entidad de servicio se le asigna un rol con permisos suficientes para crear grupos de recursos y cuentas de almacenamiento. Por ejemplo, asignar el rol Colaborador en el nivel de suscripción proporciona el acceso necesario. Para más información sobre las asignaciones de roles, consulte Control de acceso basado en rol (RBAC) en Azure.

5: Ejecutar el script

  1. Si aún no lo ha hecho, inicie sesión en Azure mediante la CLI de Azure:

    az login
    
  2. Ejecuta el script:

    python provision_rg.py
    

6: Comprobación del grupo de recursos

Puede comprobar que el grupo de recursos existe a través de Azure Portal o la CLI de Azure.

  • Azure Portal: abra Azure Portal, seleccione Grupos de recursos y compruebe que aparece el grupo. Si es necesario, use el comando Actualizar para actualizar la lista.

  • CLI de Azure: use el comando az group show :

    #!/bin/bash
    az group show -n $AZURE_RESOURCE_GROUP_NAME
    

7: Limpieza de recursos

Ejecute el comando az group delete si no necesita conservar el grupo de recursos creado en este ejemplo. Los grupos de recursos no incurren en cargos continuos en la suscripción, pero es posible que los recursos del grupo de recursos sigan generando cargos. Se recomienda limpiar cualquier grupo que no se esté usando activamente. El argumento --no-wait permite que el comando devuelva inmediatamente en lugar de esperar a que finalice la operación.

#!/bin/bash
az group delete -n $AZURE_RESOURCE_GROUP_NAME --no-wait

También puede usar el método ResourceManagementClient.resource_groups.begin_delete para eliminar un grupo de recursos del código. El código comentado en la parte inferior del script de este artículo muestra el uso.

Como referencia: comando equivalente de la CLI de Azure

El siguiente comando az group create de la CLI de Azure crea un grupo de recursos con etiquetas igual que el script de Python:

az group create -n PythonAzureExample-rg -l centralus --tags "department=tech" "environment=test"

Consulte también