如何使用Azure Python SDK部署Service Bus队列资源
Azure Service Bus队列资源置备Python SDK实现方案
你之前找到的
azure-servicebus属于数据面开发包,仅提供队列消息的生产、消费等运行时操作能力,不涉及资源生命周期管理,资源置备需要使用Azure管理面SDKazure-mgmt-servicebus。
前置准备
- 安装依赖包:
pip install azure-mgmt-servicebus azure-identity - 提前准备好Azure订阅ID、Service Bus命名空间所属资源组名称、Service Bus命名空间名称
- 本地已完成Azure身份认证(可通过
az login命令完成认证,或配置环境变量传入服务主体信息)
完整置备代码
from azure.identity import DefaultAzureCredential from azure.mgmt.servicebus import ServiceBusManagementClient from azure.mgmt.servicebus.models import SBQueue # 替换为你的实际配置参数 SUBSCRIPTION_ID = "<替换为你的Azure订阅ID>" RESOURCE_GROUP_NAME = "<替换为资源组名称>" SERVICEBUS_NAMESPACE = "<替换为Service Bus命名空间名称>" TARGET_QUEUE_NAME = "<替换为要创建的队列名称>" # 初始化管理客户端 credential = DefaultAzureCredential() sb_mgmt_client = ServiceBusManagementClient( credential=credential, subscription_id=SUBSCRIPTION_ID ) # 配置队列属性,可根据业务需求调整 queue_config = SBQueue( max_size_in_megabytes=1024, default_message_time_to_live="P7D", # 消息默认7天过期 dead_lettering_on_message_expiration=True, enable_batched_operations=True ) # 执行队列创建/更新操作 result = sb_mgmt_client.queues.create_or_update( resource_group_name=RESOURCE_GROUP_NAME, namespace_name=SERVICEBUS_NAMESPACE, queue_name=TARGET_QUEUE_NAME, parameters=queue_config ) print(f"队列 {result.name} 置备完成,资源ID:{result.id}")
常用可配置队列参数说明
max_size_in_megabytes:队列最大存储容量,单位MB,标准层最高支持16384,Premium层最高支持81920default_message_time_to_live:消息默认过期时间,采用ISO 8601格式,例如PT5M代表5分钟,P1D代表1天dead_lettering_on_message_expiration:布尔值,是否将过期消息自动移入死信队列enable_session:布尔值,是否开启会话支持,需要保证消息有序消费的场景可开启enable_partitioning:布尔值,是否开启队列分区,开启后可提升队列吞吐能力lock_duration:消息接收锁定时长,防止多个消费者重复消费,格式为ISO 8601,最长支持5分钟
内容的提问来源于stack exchange,提问作者Amit
相关产品推荐
相关产品推荐

