Microsoft Azure Queue Storage Client Library for Python providing comprehensive message queuing capabilities for distributed applications.
npx @tessl/cli install tessl/pypi-azure-storage-queue@12.13.0Microsoft Azure Queue Storage Client Library for Python providing comprehensive message queuing capabilities for distributed applications. It enables asynchronous communication between application components through reliable message storage with support for millions of messages, visibility timeouts, and global scalability.
pip install azure-storage-queuepip install azure-storage-queue[aio]pip install azure-storage-queue[encryption] (includes cryptography dependencies)from azure.storage.queue import QueueServiceClient, QueueClientFor message models, retry policies, and authentication:
from azure.storage.queue import (
QueueMessage,
QueueProperties,
ExponentialRetry,
LinearRetry,
LocationMode,
generate_account_sas,
generate_queue_sas
)For encoding policies and storage error codes:
from azure.storage.queue import (
TextBase64EncodePolicy,
TextBase64DecodePolicy,
BinaryBase64EncodePolicy,
BinaryBase64DecodePolicy,
NoEncodePolicy,
NoDecodePolicy,
StorageErrorCode
)Async versions:
from azure.storage.queue.aio import QueueServiceClient, QueueClientfrom azure.storage.queue import QueueServiceClient
# Create service client with connection string
service_client = QueueServiceClient.from_connection_string(conn_str="your_connection_string")
# Create a queue
queue_client = service_client.create_queue("myqueue")
# Send a message
queue_client.send_message("Hello, World!")
# Receive messages
messages = queue_client.receive_messages(max_messages=5)
for message in messages:
print(f"Message: {message.content}")
# Delete message after processing
queue_client.delete_message(message)Azure Storage Queue is organized around two main client types:
Both clients support multiple authentication methods (connection strings, shared keys, SAS tokens, Azure Active Directory) and provide comprehensive retry policies. The library includes both synchronous and asynchronous implementations for different programming models.
Account-level operations for managing multiple queues, service configuration, and authentication. Provides queue listing, creation, deletion, and service-wide settings management.
class QueueServiceClient:
def __init__(self, account_url: str, credential=None, **kwargs): ...
def list_queues(self, **kwargs) -> ItemPaged[QueueProperties]: ...
def create_queue(self, name: str, **kwargs) -> QueueClient: ...
def delete_queue(self, queue: Union[str, QueueProperties], **kwargs) -> None: ...
def get_service_properties(self, **kwargs) -> Dict[str, Any]: ...
def set_service_properties(self, **kwargs) -> None: ...Queue-specific operations including message sending, receiving, peeking, and queue metadata management. Handles individual queue lifecycle and properties.
class QueueClient:
def __init__(self, account_url: str, queue_name: str, credential=None, **kwargs): ...
def create_queue(self, **kwargs) -> None: ...
def delete_queue(self, **kwargs) -> None: ...
def get_queue_properties(self, **kwargs) -> QueueProperties: ...
def set_queue_metadata(self, metadata: Dict[str, str], **kwargs) -> Dict[str, Any]: ...Comprehensive message handling including sending, receiving, updating, peeking, and deletion. Supports visibility timeouts, message expiration, and batch operations.
def send_message(self, content: Any, **kwargs) -> QueueMessage: ...
def receive_message(self, **kwargs) -> Optional[QueueMessage]: ...
def receive_messages(self, **kwargs) -> ItemPaged[QueueMessage]: ...
def update_message(self, message: QueueMessage, **kwargs) -> QueueMessage: ...
def peek_messages(self, **kwargs) -> List[QueueMessage]: ...
def delete_message(self, message: QueueMessage, **kwargs) -> None: ...
def clear_messages(self, **kwargs) -> None: ...Shared Access Signature (SAS) generation, access policies, and multiple authentication methods for secure queue access.
def generate_account_sas(
account_name: str,
account_key: str,
resource_types: Union[ResourceTypes, str],
permission: Union[AccountSasPermissions, str],
expiry: Union[datetime, str],
**kwargs
) -> str: ...
def generate_queue_sas(
account_name: str,
queue_name: str,
account_key: str,
**kwargs
) -> str: ...Core data structures, retry policies, message encoding options, and service configuration models.
class QueueMessage:
id: str
content: Any
pop_receipt: Optional[str]
inserted_on: Optional[datetime]
expires_on: Optional[datetime]
dequeue_count: Optional[int]
next_visible_on: Optional[datetime]
class QueueProperties:
name: str
metadata: Optional[Dict[str, str]]
approximate_message_count: Optional[int]Asynchronous implementations of all queue and message operations for high-performance applications requiring non-blocking I/O.
class QueueServiceClient: # from azure.storage.queue.aio
async def list_queues(self, **kwargs) -> AsyncItemPaged[QueueProperties]: ...
async def create_queue(self, name: str, **kwargs) -> QueueClient: ...
async def delete_queue(self, queue: Union[str, QueueProperties], **kwargs) -> None: ...
class QueueClient: # from azure.storage.queue.aio
async def send_message(self, content: Any, **kwargs) -> QueueMessage: ...
async def receive_message(self, **kwargs) -> Optional[QueueMessage]: ...
def receive_messages(self, **kwargs) -> AsyncItemPaged[QueueMessage]: ...from typing import Union, Optional, Dict, List, Any
from datetime import datetime
from azure.core.paging import ItemPagedclass AccountSasPermissions:
read: bool
write: bool
delete: bool
list: bool
add: bool
create: bool
update: bool
process: bool
class QueueSasPermissions:
read: bool
add: bool
update: bool
process: bool
class ResourceTypes:
service: bool
container: bool
object: bool
class Services:
blob: bool
queue: bool
fileshare: bool
class LocationMode:
PRIMARY: str = "primary"
SECONDARY: str = "secondary"class ExponentialRetry:
initial_backoff: int
increment_base: int
retry_total: int
retry_to_secondary: bool
random_jitter_range: int
class LinearRetry:
backoff: int
retry_total: int
retry_to_secondary: bool
random_jitter_range: intclass StorageErrorCode:
INVALID_MARKER: str
MESSAGE_NOT_FOUND: str
MESSAGE_TOO_LARGE: str
POP_RECEIPT_MISMATCH: str
QUEUE_ALREADY_EXISTS: str
QUEUE_BEING_DELETED: str
QUEUE_DISABLED: str
QUEUE_NOT_EMPTY: str
QUEUE_NOT_FOUND: str