You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用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层最高支持81920
  • default_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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 19:06:03