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:
Configure un entorno virtual de Python mediante
venv
o la herramienta que prefiera. Puede crear el entorno virtual localmente o en Azure Cloud Shell y ejecutar el código allí. Asegúrese de activar el entorno virtual para empezar a usarlo.Use un entorno de conda.
Use un contenedor de desarrollo en Visual Studio Code o GitHub Codespaces.
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.
Vínculos de referencia a las clases usadas en el código
4: Ejecución del script
Si aún no lo ha hecho, inicie sesión en Azure mediante la CLI de Azure:
az login
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 propiedadid
en la salida):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
- Ejemplo: Enumeración de los grupos de recursos de una suscripción
- Ejemplo: Creación de Azure Storage
- Ejemplo: Uso de Azure Storage
- Ejemplo: Creación de una aplicación web e implementación de código
- Ejemplo: Creación y consulta de una base de datos
- Ejemplo: Creación de una máquina virtual
- Uso de Azure Managed Disks con máquinas virtuales
- Realización de una breve encuesta sobre el SDK de Azure para Python