or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

async-operations.mdauthentication.mdindex.mdmessage-operations.mdmodels-config.mdqueue-operations.mdqueue-service.md
tile.json

tessl/pypi-azure-storage-queue

Microsoft Azure Queue Storage Client Library for Python providing comprehensive message queuing capabilities for distributed applications.

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
pypipkg:pypi/azure-storage-queue@12.13.x

To install, run

npx @tessl/cli install tessl/pypi-azure-storage-queue@12.13.0

index.mddocs/

Azure Storage Queue

Microsoft 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.

Package Information

  • Package Name: azure-storage-queue
  • Language: Python
  • Installation: pip install azure-storage-queue
  • Async Support: pip install azure-storage-queue[aio]
  • With Encryption: pip install azure-storage-queue[encryption] (includes cryptography dependencies)

Core Imports

from azure.storage.queue import QueueServiceClient, QueueClient

For 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, QueueClient

Basic Usage

from 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)

Architecture

Azure Storage Queue is organized around two main client types:

  • QueueServiceClient: Account-level operations for managing queues, service properties, and authentication
  • QueueClient: Queue-specific operations for message handling, queue metadata, and access policies

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.

Capabilities

Queue Service Management

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 Service Management

Queue Operations

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]: ...

Queue Operations

Message Operations

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: ...

Message Operations

Authentication and Security

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: ...

Authentication and Security

Data Models and Configuration

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]

Data Models and Configuration

Async Operations

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]: ...

Async Operations

Types

Core Types

from typing import Union, Optional, Dict, List, Any
from datetime import datetime
from azure.core.paging import ItemPaged

Authentication Types

class 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"

Retry Policy Types

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: int

Error Types

class 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