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 de Azure SDK 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 igual en el bash de Linux o macOS y en los shells de comandos de Windows, a menos que se indique lo contrario.

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:

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

Cree un archivo llamado requirements.txt con el siguiente contenido:

azure-mgmt-resource
azure-identity

En un terminal o símbolo del sistema con el entorno virtual activado, instale los requisitos:

pip install -r requirements.txt

3: Escritura de código para crear un grupo de recursos

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

# 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"]

# 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(
    "PythonAzureExample-rg", {"location": "centralus"}
)

# 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://video2.skills-academy.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(
    "PythonAzureExample-rg",
    {
        "location": "centralus",
        "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, debe iniciar sesión en Azure con la CLI de Azure para ejecutar el código de ejemplo. Si la cuenta tiene permisos para crear y enumerar grupos de recursos en la suscripción de Azure, el código se ejecutará correctamente.

Para usar este código en un script de producción, puede establecer variables de entorno para usar un método basado en la entidad de servicio para la autenticación. Para más información, consulte Autenticación de aplicaciones de Python con los servicios de Azure. Debe asegurarse de que la entidad de servicio tenga permisos suficientes para crear y enumerar grupos de recursos en la suscripción mediante la asignación de un rol adecuado en Azure; por ejemplo, el rol Colaborador de la suscripción.

4: Ejecución del script

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

    az login
    
  2. Establezca como valor de la variable de entorno AZURE_SUBSCRIPTION_ID el identificador de su suscripción. (Puede ejecutar el comando az account show y obtener el identificador de suscripción de la propiedad id en la salida):

    set AZURE_SUBSCRIPTION_ID=00000000-0000-0000-0000-000000000000
    
  3. Ejecute el script:

    python provision_rg.py
    

5: Comprobación del grupo de recursos

Puede comprobar que el grupo existe mediante Azure Portal o la CLI de Azure.

  • Azure Portal: abra Azure Portal, seleccione Grupos de recursos y compruebe que el grupo aparece en la lista. Si ya tiene el portal abierto, use el comando Refresh para actualizar la lista.

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

    az group show -n PythonAzureExample-rg
    

6: Limpieza de recursos

Ejecute el comando az group delete si no es necesario 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. Es recomendable limpiar cualquier grupo que no esté usando activamente. El argumento --no-wait permite que el comando devuelva el control inmediatamente en lugar de esperar a que finalice la operación.

az group delete -n PythonAzureExample-rg  --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 de la CLI de Azure az group create 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