CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/pypi-azure-storage-queue

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

Pending

Quality

Pending

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

Overview
Eval results
Files

queue-service.mddocs/

Queue Service Management

Account-level operations for managing multiple queues, service configuration, and authentication within an Azure Storage account. The QueueServiceClient provides comprehensive queue service management capabilities.

Capabilities

QueueServiceClient Creation

Create service clients using various authentication methods including connection strings, account keys, and SAS tokens.

class QueueServiceClient:
    def __init__(
        self, 
        account_url: str, 
        credential=None, 
        *, 
        api_version: Optional[str] = None,
        secondary_hostname: Optional[str] = None,
        audience: Optional[str] = None,
        **kwargs
    ): 
        """
        Create a QueueServiceClient from account URL and credential.
        
        Parameters:
        - account_url: Queue service endpoint URL
        - credential: Authentication credential (key, SAS token, or Azure credential)
        - api_version: Storage service API version
        - secondary_hostname: Secondary hostname for read access
        - audience: Token audience for Azure AD authentication
        """

    @classmethod
    def from_connection_string(
        cls,
        conn_str: str,
        credential=None,
        **kwargs
    ) -> 'QueueServiceClient':
        """
        Create client from storage account connection string.
        
        Parameters:
        - conn_str: Storage account connection string
        - credential: Optional additional credential
        
        Returns:
        QueueServiceClient instance
        """

Queue Listing

List all queues in the storage account with optional filtering and metadata inclusion.

def list_queues(
    self,
    name_starts_with: Optional[str] = None,
    include_metadata: bool = False,
    *,
    results_per_page: Optional[int] = None,
    timeout: Optional[int] = None,
    **kwargs
) -> ItemPaged[QueueProperties]:
    """
    List queues in the storage account.
    
    Parameters:
    - name_starts_with: Filter queues by name prefix
    - include_metadata: Include queue metadata in results
    - results_per_page: Number of results per page
    - timeout: Request timeout in seconds
    
    Returns:
    Paginated list of QueueProperties
    """

Queue Creation and Deletion

Create and delete queues at the service level with optional metadata.

def create_queue(
    self,
    name: str,
    metadata: Optional[Dict[str, str]] = None,
    *,
    timeout: Optional[int] = None,
    **kwargs
) -> QueueClient:
    """
    Create a new queue in the storage account.
    
    Parameters:
    - name: Queue name (3-63 characters, lowercase letters, numbers, hyphens)
    - metadata: User-defined metadata key-value pairs
    - timeout: Request timeout in seconds
    
    Returns:
    QueueClient for the created queue
    
    Raises:
    ResourceExistsError: If queue already exists
    """

def delete_queue(
    self,
    queue: Union[str, QueueProperties],
    *,
    timeout: Optional[int] = None,
    **kwargs
) -> None:
    """
    Delete a queue from the storage account.
    
    Parameters:
    - queue: Queue name or QueueProperties object
    - timeout: Request timeout in seconds
    
    Raises:
    ResourceNotFoundError: If queue does not exist
    """

Service Properties Management

Get and set service-wide properties including analytics, CORS rules, and retention policies.

def get_service_properties(
    self,
    *,
    timeout: Optional[int] = None,
    **kwargs
) -> Dict[str, Any]:
    """
    Get storage service properties including analytics and CORS.
    
    Parameters:
    - timeout: Request timeout in seconds
    
    Returns:
    Dictionary containing service properties:
    - analytics_logging: QueueAnalyticsLogging settings
    - hour_metrics: Metrics configuration
    - minute_metrics: Metrics configuration  
    - cors: List of CorsRule objects
    """

def set_service_properties(
    self,
    analytics_logging: Optional[QueueAnalyticsLogging] = None,
    hour_metrics: Optional[Metrics] = None,
    minute_metrics: Optional[Metrics] = None,
    cors: Optional[List[CorsRule]] = None,
    *,
    timeout: Optional[int] = None,
    **kwargs
) -> None:
    """
    Set storage service properties.
    
    Parameters:
    - analytics_logging: Logging configuration
    - hour_metrics: Hourly metrics configuration
    - minute_metrics: Per-minute metrics configuration
    - cors: Cross-origin resource sharing rules
    - timeout: Request timeout in seconds
    """

Service Statistics

Retrieve service statistics for geo-replicated storage accounts.

def get_service_stats(
    self,
    *,
    timeout: Optional[int] = None,
    **kwargs
) -> Dict[str, Any]:
    """
    Get service statistics for geo-replicated accounts.
    
    Parameters:
    - timeout: Request timeout in seconds
    
    Returns:
    Dictionary containing replication statistics:
    - geo_replication: Replication status and timestamps
    
    Note:
    Only available for read-access geo-redundant replication (RA-GRS)
    """

Queue Client Creation

Get QueueClient instances for specific queues without making service calls.

def get_queue_client(
    self,
    queue: Union[str, QueueProperties],
    **kwargs
) -> QueueClient:
    """
    Create a QueueClient for a specific queue.
    
    Parameters:
    - queue: Queue name or QueueProperties object
    
    Returns:
    QueueClient instance for the specified queue
    
    Note:
    Does not verify queue existence
    """

Usage Examples

Basic Service Client Usage

from azure.storage.queue import QueueServiceClient

# Create service client from connection string
service_client = QueueServiceClient.from_connection_string(
    "DefaultEndpointsProtocol=https;AccountName=myaccount;AccountKey=mykey"
)

# List all queues
queues = service_client.list_queues(include_metadata=True)
for queue in queues:
    print(f"Queue: {queue.name}, Messages: {queue.approximate_message_count}")

# Create a new queue
queue_client = service_client.create_queue("myqueue", metadata={"purpose": "testing"})

# Delete a queue
service_client.delete_queue("myqueue")

Service Properties Configuration

from azure.storage.queue import QueueAnalyticsLogging, Metrics, RetentionPolicy

# Configure service properties
logging_config = QueueAnalyticsLogging(
    version="1.0",
    delete=True,
    read=True,
    write=True,
    retention_policy=RetentionPolicy(enabled=True, days=7)
)

metrics_config = Metrics(
    version="1.0",
    enabled=True,
    include_apis=True,
    retention_policy=RetentionPolicy(enabled=True, days=7)
)

service_client.set_service_properties(
    analytics_logging=logging_config,
    hour_metrics=metrics_config,
    minute_metrics=metrics_config
)

Types

Service Configuration Types

class QueueAnalyticsLogging:
    version: str
    delete: bool
    read: bool
    write: bool
    retention_policy: RetentionPolicy

class Metrics:
    version: str
    enabled: bool
    include_apis: Optional[bool]
    retention_policy: RetentionPolicy

class RetentionPolicy:
    enabled: bool
    days: Optional[int]

class CorsRule:
    allowed_origins: str
    allowed_methods: str
    max_age_in_seconds: int
    exposed_headers: str
    allowed_headers: str

Install with Tessl CLI

npx tessl i tessl/pypi-azure-storage-queue

docs

async-operations.md

authentication.md

index.md

message-operations.md

models-config.md

queue-operations.md

queue-service.md

tile.json