Microsoft Azure Queue Storage Client Library for Python providing comprehensive message queuing capabilities for distributed applications.
—
Quality
Pending
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Account-level operations for managing multiple queues, service configuration, and authentication within an Azure Storage account. The QueueServiceClient provides comprehensive queue service management capabilities.
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
"""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
"""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
"""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
"""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)
"""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
"""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")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
)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: strInstall with Tessl CLI
npx tessl i tessl/pypi-azure-storage-queue