Inicio rápido: Biblioteca cliente de Azure Queue Storage v12 para Python
Introducción a la biblioteca cliente de Azure Queue Storage v12 para Python. Azure Queue Storage es un servicio para almacenar gran cantidad de mensajes para su posterior recuperación y procesamiento. Siga estos pasos para instalar el paquete y probar el código de ejemplo para realizar tareas básicas.
Use la biblioteca cliente de Azure Queue Storage v12 para Python para realizar las siguientes operaciones:
- Creación de una cola
- Adición de mensajes a una cola
- Lectura de los mensajes de una cola
- Eliminación de un mensaje de una cola
- mensajes de una cola
- Eliminación de mensajes de una cola
- Eliminación de una cola
Recursos adicionales:
- Documentación de referencia de API
- Código fuente de la biblioteca
- Paquete (índice de paquetes de Python)
- Muestras
Prerrequisitos
- Una suscripción a Azure: cree una cuenta gratuita
- Una cuenta de Azure Storage: cree una cuenta de almacenamiento
- Python para su sistema operativo: 2.7 o 3.6+
Instalación
En esta sección se explica cómo preparar un proyecto para que funcione con la biblioteca cliente de Azure Queue Storage v12 para Python.
Creación del proyecto
Cree una aplicación de Python llamada queues-quickstart-v12.
En una ventana de la consola (como cmd, PowerShell o Bash), cree un directorio para el proyecto.
mkdir queues-quickstart-v12Cambie al directorio
queues-quickstart-v12recién creado.cd queues-quickstart-v12
Instalar el paquete
Instale el paquete de la biblioteca cliente de Azure Blob Storage para Python con el comando pip install.
pip install azure-storage-queue
Este comando instala el paquete de la biblioteca cliente de Azure Queue Storage para Python y todas las bibliotecas de las que depende. En este caso, se trata solo de la biblioteca principal de Azure para Python.
Instalación del marco de la aplicación
Abra un nuevo archivo de texto en el editor de código.
Agregue instrucciones
import.Cree la estructura del programa, incluido un control de excepciones muy básico.
Este es el código:
import os, uuid from azure.storage.queue import QueueServiceClient, QueueClient, QueueMessage try: print("Azure Queue storage v12 - Python quickstart sample") # Quick start code goes here except Exception as ex: print('Exception:') print(ex)Guarde el nuevo archivo como
queues-quickstart-v12.pyen el directorioqueues-quickstart-v12.
Copia de las credenciales desde Azure Portal
Cuando la aplicación de ejemplo realiza una solicitud a Azure Storage, debe estar autorizada. Para autorizar una solicitud, agregue a la aplicación las credenciales de la cuenta de almacenamiento en forma de cadena de conexión. Para ver las credenciales de la cuenta de almacenamiento, siga estos pasos:
Inicie sesión en Azure Portal.
Busque su cuenta de almacenamiento.
En el panel del menú de la cuenta de almacenamiento, en Seguridad y redes, seleccione Claves de acceso. Aquí puede ver las claves de acceso de la cuenta, así como la cadena de conexión completa de cada clave.

En el panel Claves acceso, seleccione Mostrar claves.
En la sección key1, busque el valor de Cadena de conexión. Seleccione el icono Copiar al portapapeles para copiar la cadena de conexión. En la siguiente sección, agregará el valor de la cadena de conexión a una variable de entorno.

Configuración de la cadena de conexión de almacenamiento.
Una vez que haya copiado la cadena de conexión, escríbala en una variable de entorno nueva en la máquina local que ejecuta la aplicación. Para establecer la variable de entorno, abra una ventana de consola y siga las instrucciones de su sistema operativo. Reemplace <yourconnectionstring> por la cadena de conexión real.
Windows
setx AZURE_STORAGE_CONNECTION_STRING "<yourconnectionstring>"
Después de agregar la variable de entorno en Windows, debe iniciar una nueva instancia de la ventana de comandos.
Linux
export AZURE_STORAGE_CONNECTION_STRING="<yourconnectionstring>"
macOS
export AZURE_STORAGE_CONNECTION_STRING="<yourconnectionstring>"
Reiniciar programas
Después de agregar la variable de entorno, reinicie todos los programas en ejecución que necesiten leer esta variable. Por ejemplo, reinicie el entorno de desarrollo o el editor antes de continuar.
Modelo de objetos
Azure Queue Storage es un servicio para almacenar grandes cantidades de mensajes, Un mensaje de la cola puede llegar a tener hasta 64 KB. Una cola puede contener millones de mensajes, hasta el límite de capacidad total de una cuenta de almacenamiento. Las colas se utilizan normalmente para crear un trabajo pendiente del trabajo que se va a procesar de forma asincrónica. Queue Storage ofrece tres tipos de recursos:
- La cuenta de almacenamiento
- Cola en la cuenta de almacenamiento
- Mensajes dentro de la cola
En el siguiente diagrama se muestra la relación entre estos recursos.

Use las siguientes clases de Python para interactuar con estos recursos:
QueueServiceClient: La claseQueueServiceClientpermite administrar todas las colas de la cuenta de almacenamiento.QueueClient: La claseQueueClientpermite administrar y manipular una cola individual y sus mensajes.QueueMessage: La claseQueueMessagerepresenta los objetos individuales que se devuelven al llamar areceive_messagesen una cola.
Ejemplos de código
Estos fragmentos de código de ejemplo muestran cómo realizar las siguientes acciones con la biblioteca cliente de Azure Queue Storage para Python:
- Obtención de la cadena de conexión
- Creación de una cola
- Adición de mensajes a una cola
- Leer los mensajes de una cola
- Eliminación de un mensaje de una cola
- Recepción de mensajes de una cola
- Eliminación de mensajes de una cola
- Eliminación de una cola
Obtención de la cadena de conexión
El siguiente código recupera la cadena de conexión de la cuenta de almacenamiento. La cadena de conexión se almacena en la variable de entorno creada en la sección Configuración de la cadena de conexión de almacenamiento.
Agregue este código dentro del bloque try:
# Retrieve the connection string for use with the application. The storage
# connection string is stored in an environment variable on the machine
# running the application called AZURE_STORAGE_CONNECTION_STRING. If the
# environment variable is created after the application is launched in a
# console or with Visual Studio, the shell or application needs to be
# closed and reloaded to take the environment variable into account.
connect_str = os.getenv('AZURE_STORAGE_CONNECTION_STRING')
Creación de una cola
Decida un nombre para la nueva cola. El siguiente código anexa un valor de UUID al nombre de la cola para asegurarse de que sea único.
Importante
Los nombres de la cola solo puede incluir letras minúsculas, números y guiones y debe empezar por una letra o un número. Antes y después de cada guion debe ir un carácter que no sea otro guión. El nombre debe tener entre 3 y 63 caracteres. Para más información, consulte Asignación de nombres a colas y metadatos.
Cree una instancia de la clase QueueClient. Luego, llame al método create_queue para crear la cola en la cuenta de almacenamiento.
Agregue este código al final del bloque try:
# Create a unique name for the queue
queue_name = "quickstartqueues-" + str(uuid.uuid4())
print("Creating queue: " + queue_name)
# Instantiate a QueueClient which will be
# used to create and manipulate the queue
queue_client = QueueClient.from_connection_string(connect_str, queue_name)
# Create the queue
queue_client.create_queue()
Adición de mensajes a una cola
El siguiente fragmento de código agrega mensajes a la cola, para lo que debe llamar al método send_message. También guarda la clase QueueMessage devuelta desde la tercera llamada a send_message. La clase saved_message se utiliza para actualizar el contenido del mensaje más adelante en el programa.
Agregue este código al final del bloque try:
print("\nAdding messages to the queue...")
# Send several messages to the queue
queue_client.send_message(u"First message")
queue_client.send_message(u"Second message")
saved_message = queue_client.send_message(u"Third message")
Lectura de los mensajes de una cola
Lea los mensajes de la cola, para lo que debe llamar al método peek_messages. Este método recupera uno o varios mensajes de la parte delantera de la cola, pero no modifica la visibilidad del mensaje.
Agregue este código al final del bloque try:
print("\nPeek at the messages in the queue...")
# Peek at messages in the queue
peeked_messages = queue_client.peek_messages(max_messages=5)
for peeked_message in peeked_messages:
# Display the message
print("Message: " + peeked_message.content)
Eliminación de un mensaje de una cola
Actualice el contenido de un mensaje mediante una llamada al método update_message. Este método puede cambiar tanto el contenido como el tiempo de espera de visibilidad de un mensaje. El contenido del mensaje debe ser una cadena con codificación UTF-8 de hasta 64 KB de tamaño. Junto con el nuevo contenido, pase los valores del mensaje que se guardó anteriormente en el código. Los valores saved_message identifican el mensaje que se va a actualizar.
print("\nUpdating the third message in the queue...")
# Update a message using the message saved when calling send_message earlier
queue_client.update_message(saved_message, pop_receipt=saved_message.pop_receipt, \
content="Third message has been updated")
mensajes de una cola
Descargue los mensajes que ha agregado anteriormente, para lo que debe llamar al método receive_messages.
Agregue este código al final del bloque try:
print("\nReceiving messages from the queue...")
# Get messages from the queue
messages = queue_client.receive_messages(messages_per_page=5)
Eliminación de mensajes de una cola
Elimine los mensajes de la cola una vez recibidos y procesados. En este caso, el procesamiento solo muestra el mensaje en la consola.
La aplicación se detiene para la entrada del usuario mediante una llamada a input antes de procesar y eliminar los mensajes. Compruebe en Azure Portal que los recursos se crearon correctamente, antes de que se eliminen. Los mensajes que no se eliminen explícitamente volverán a estar visibles en la cola para que se procesen.
Agregue este código al final del bloque try:
print("\nPress Enter key to 'process' messages and delete them from the queue...")
input()
for msg_batch in messages.by_page():
for msg in msg_batch:
# "Process" the message
print(msg.content)
# Let the service know we're finished with
# the message and it can be safely deleted.
queue_client.delete_message(msg)
Eliminación de una cola
El siguiente código limpia los recursos que creó la aplicación; para ello, elimina la cola mediante el método delete_queue.
Agregue este código al final del bloque try y guarde el archivo:
print("\nPress Enter key to delete the queue...")
input()
# Clean up
print("Deleting queue...")
queue_client.delete_queue()
print("Done")
Ejecución del código
Esta aplicación crea y agrega tres mensajes a una cola de Azure. El código muestra los mensajes en la cola y, a continuación, los recupera y los elimina antes de eliminar la cola.
En la ventana de la consola, vaya al directorio que contiene el archivo queues-quickstart-v12.py y use el siguiente comando python para ejecutar la aplicación.
python queues-quickstart-v12.py
La salida de la aplicación es similar a la del ejemplo siguiente:
Azure Queue Storage client library v12 - Python quickstart sample
Creating queue: quickstartqueues-cac365be-7ce6-4065-bd65-3756ea052cb8
Adding messages to the queue...
Peek at the messages in the queue...
Message: First message
Message: Second message
Message: Third message
Updating the third message in the queue...
Receiving messages from the queue...
Press Enter key to 'process' messages and delete them from the queue...
First message
Second message
Third message has been updated
Press Enter key to delete the queue...
Deleting queue...
Done
Cuando la aplicación se detiene antes de recibir mensajes, compruebe la cuenta de almacenamiento en Azure Portal. Compruebe que los mensajes están en la cola.
Presione la tecla Enter para recibir y eliminar los mensajes. Cuando se le solicite, presione de nuevo la tecla Enter para eliminar la cola y finalizar la demostración.
Pasos siguientes
En este inicio rápido, ha aprendido a crear una cola y a agregarle mensajes mediante código de Python. Después aprendió a ver, recuperar y eliminar mensajes. Por último, ha aprendido a eliminar una cola de mensajes.
Para ver tutoriales, ejemplos, artículos de inicio rápido y otra documentación, visite:
- Para más información, consulte Bibliotecas de Azure Storage para Python.
- Para ver más aplicaciones de ejemplo de Azure Queue Storage, consulte los ejemplos de la biblioteca de Azure Queue Storage v12 para Python.