Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo, aprenderá a usar las bibliotecas de administración de Azure para Python para crear un grupo de recursos, junto con una cuenta de Azure Storage y un contenedor de Blob Storage.
Después de aprovisionar estos recursos, consulte la sección Ejemplo: Uso de Azure Storage para ver cómo usar las bibliotecas cliente de Azure en Python para cargar un archivo en el contenedor de blobs.
Los comandos equivalentes de la CLI de Azure para Bash y PowerShell se enumeran más adelante en este artículo. Si prefiere usar Azure Portal, consulte Creación de una cuenta de Azure Storage y Creación de un contenedor de blobs.
1: Configuración del entorno de desarrollo local
Si aún no lo ha hecho, configure un entorno en el que pueda ejecutar el código. Estas son algunas opciones:
Configure un entorno virtual de Python mediante
venvo 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)Use un entorno de 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 necesarios
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-mgmt-storage azure-identityEn 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)
export STORAGE_ACCOUNT_NAME="<StorageAccountName>" # Change to your preferred storage account name
export CONTAINER_NAME="<ContainerName>" # Change to your preferred container name
4: Escribir código para crear una cuenta de almacenamiento y un contenedor de blobs
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 las bibliotecas de administración de Python para crear un grupo de recursos, una cuenta de Azure Storage y un contenedor de blobs.
import os
# Import the needed credential and management objects from the libraries.
from azure.identity import DefaultAzureCredential
from azure.mgmt.resource import ResourceManagementClient
from azure.mgmt.storage import StorageManagementClient
from azure.mgmt.storage.models import BlobContainer
# Acquire a credential object.
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"]
# Step 1: Provision the resource group.
resource_client = ResourceManagementClient(credential, subscription_id)
rg_result = resource_client.resource_groups.create_or_update(RESOURCE_GROUP_NAME,
{ "location": LOCATION })
print(f"Provisioned resource group {rg_result.name}")
# For details on the previous code, see Example: Create a resource group:
# https://learn.microsoft.com/azure/developer/python/sdk/examples/azure-sdk-example-resource-group
# Step 2: Provision the storage account, starting with a management object.
storage_client = StorageManagementClient(credential, subscription_id)
STORAGE_ACCOUNT_NAME = os.environ["STORAGE_ACCOUNT_NAME"]
# Check if the account name is available. Storage account names must be unique across
# Azure because they're used in URLs.
availability_result = storage_client.storage_accounts.check_name_availability(
{ "name": STORAGE_ACCOUNT_NAME, "type": "Microsoft.Storage/storageAccounts" }
)
if not availability_result.name_available:
print(f"Storage name {STORAGE_ACCOUNT_NAME} is already in use. Try another name.")
exit()
# The name is available, so provision the account
poller = storage_client.storage_accounts.begin_create(RESOURCE_GROUP_NAME, STORAGE_ACCOUNT_NAME,
{
"location" : LOCATION,
"kind": "StorageV2",
"sku": {"name": "Standard_LRS"}
}
)
# Long-running operations return a poller object; calling poller.result()
# waits for completion.
account_result = poller.result()
print(f"Provisioned storage account {account_result.name}")
# Step 3: Retrieve the account's primary access key and generate a connection string.
keys = storage_client.storage_accounts.list_keys(RESOURCE_GROUP_NAME, STORAGE_ACCOUNT_NAME)
print("Retrieved the primary key for the storage account")
conn_string = f"DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net;AccountName={STORAGE_ACCOUNT_NAME};AccountKey={keys['keys'][0].value}"
# print(f"Connection string: {conn_string}")
# Step 4: Provision the blob container in the account (this call is synchronous)
CONTAINER_NAME = os.environ["CONTAINER_NAME"]
container = storage_client.blob_containers.create(RESOURCE_GROUP_NAME, STORAGE_ACCOUNT_NAME, CONTAINER_NAME, BlobContainer())
print(f"Provisioned blob container {container.name}")
Autenticación en el código
Más adelante en este artículo, inicia sesión en Azure mediante el 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 se ejecuta correctamente sin configuración adicional.
Para usar este código en un entorno de producción, autentíquese mediante una entidad de servicio y establezca 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.
Vínculos de referencia para las clases usadas en el código
- DefaultAzureCredential (azure.identity)
- ResourceManagementClient (azure.mgmt.resource)
- StorageManagementClient (azure.mgmt.storage)
5. Ejecutar el script
Si aún no lo ha hecho, inicie sesión en Azure con el CLI de Azure:
az login
Ejecuta el script:
python provision_blob.pyEl script tarda un minuto o dos en completarse.
6: Comprobación de los recursos
Abra Azure Portal para comprobar que el grupo de recursos y la cuenta de almacenamiento se crearon según lo previsto. Es posible que tenga que esperar un minuto y, a continuación, actualizar la vista del grupo de recursos.
Seleccione la cuenta de almacenamiento y, a continuación, seleccioneContenedores> datos en el menú izquierdo para comprobar que aparece el contenedor que creó:
Si quiere intentar usar estos recursos desde el código de aplicación, continúe con Ejemplo: Uso de Azure Storage.
Para obtener otro ejemplo de uso de la biblioteca de administración de Azure Storage, consulte el ejemplo Administración del almacenamiento de Python.
7: Limpieza de recursos
Si quiere usar estos recursos en el código de la aplicación, siga el artículo Example: Use Azure Storage. De lo contrario, ejecute el comando az group delete si no necesita mantener el grupo de recursos y los recursos de almacenamiento que creó en este ejemplo.
Los grupos de recursos no incurren en cargos continuos en la suscripción, pero los recursos, como las cuentas de almacenamiento, en el grupo de recursos pueden incurrir en cargos. Se recomienda limpiar cualquier grupo de recursos que no use 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
Como referencia: comandos equivalentes de la CLI de Azure
Los siguientes comandos de la CLI de Azure completan los mismos pasos de creación que el script de Python:
#!/bin/bash
# Set variables
export LOCATION="<Location>" # Change to your preferred region
export AZURE_RESOURCE_GROUP_NAME="<ResourceGroupName>" # Change to your preferred resource group name
export STORAGE_ACCOUNT_NAME="<StorageAccountName>" # Change to your preferred storage account name
export CONTAINER_NAME="<ContainerName>" # Change to your preferred container name
# Provision the resource group
echo "Creating resource group: $AZURE_RESOURCE_GROUP_NAME"
az group create \
--location "$LOCATION" \
--name "$AZURE_RESOURCE_GROUP_NAME"
# Provision the storage account
az storage account create \
--resource-group "$AZURE_RESOURCE_GROUP_NAME" \
--location "$LOCATION" \
--name "$STORAGE_ACCOUNT_NAME" \
--kind StorageV2 \
--sku Standard_LRS
echo "Storage account name is $STORAGE_ACCOUNT_NAME"
# Retrieve the connection string
CONNECTION_STRING=$(az storage account show-connection-string \
--resource-group "$AZURE_RESOURCE_GROUP_NAME" \
--name "$STORAGE_ACCOUNT_NAME" \
--query connectionString \
--output tsv)
# Provision the blob container
az storage container create \
--name "$CONTAINER_NAME" \
--account-name "$STORAGE_ACCOUNT_NAME" \
--connection-string "$CONNECTION_STRING"
Consulte también
- Ejemplo: Uso de Azure Storage
- ejemplo de : creación de un grupo de recursos
- ejemplo: Enumeración de grupos de recursos en una suscripción
- 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 de : creación de una máquina virtual
- Uso de Azure Managed Disks con máquinas virtuales
- Completar una breve encuesta sobre el SDK de Azure para Python