Agent Skills
返回列表
💻

Azure 服务总线 Python SDK

开发编程 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/azure-servicebus-py。

技能介绍

要解决什么问题

在 Azure 上做多服务解耦、削峰填谷或事件驱动架构时,队列与发布/订阅主题是常见选型。直接用 azure-servicebus 文档往往分散在鉴权、客户端生命周期、接收模式与消息处置之间,生产代码还容易混用连接字符串与同步/异步客户端,导致资源泄漏或 Entra 审计缺口。

技能如何组织内容

本技能以 Azure Service Bus Python SDK 为主线,强调两条贯穿规则:优先 DefaultAzureCredential(本地与云端同一套凭据链,生产可用 AZURE_TOKEN_CREDENTIALS 收窄),以及 客户端与异步凭据一律放在上下文管理器(with / async with)里释放传输与令牌缓存。

核心能力覆盖:

  • 客户端分工:ServiceBusClient 管连接,get_queue_sender / get_topic_sender 发消息,get_queue_receiver / get_subscription_receiver 收消息
  • 接收模式:默认 PEEK_LOCK(需 complete_message / abandon_message 等处置)与 RECEIVE_AND_DELETE(最多一次)
  • 进阶场景:主题与订阅、会话 FIFO、计划消息、死信队列与毒消息处理
  • 参考与脚本:references/patterns.md、references/dead-letter.md,以及 scripts/setup_servicebus.py 做队列/主题管理与 DLQ 监控

适用边界与注意点

  • 同步与异步二选一:不要在同一路径混用 azure.servicebus 与 azure.servicebus.aio。
  • 生产负载优先异步;简单脚本可用同步客户端,但仍需上下文管理器与成功处理后 complete。
  • 高吞吐用消息批、有序用会话、无限阻塞用 max_wait_time 约束;毒消息应走 dead-letter,而非反复 abandon。

技能不替代 Azure 门户上的命名空间/实体 provisioning 策略,实体创建与权限仍须在订阅与 RBAC 层面单独规划。

使用场景

  • 在 Python 微服务里用异步 Receiver 从 Service Bus 队列拉取任务,处理成功后调用 complete_message 确认消费。
  • 为多个下游订阅同一业务事件,用 Topic Sender 发布消息并为各团队配置独立 Subscription Receiver。
  • 订单或流水必须按会话 ID 严格 FIFO 处理时,启用 Session Receiver 并在同一会话内顺序 complete。
  • 消费反复失败的消息需隔离排查时,按技能参考对毒消息 dead_letter_message 并配合 DLQ 监控脚本复查。

适合人员

  • 在 Azure 上维护 Python 后端、要把订单/任务从 HTTP 同步调用改为队列异步解耦的工程师
  • 负责 Service Bus 命名空间与 RBAC,需要统一 DefaultAzureCredential 而非连接字符串的团队平台同学
  • 编写事件驱动流水线、要在 PEEK_LOCK 下正确处置 complete/abandon/defer 的应用开发者
  • 需要按计划投递、批发送或 DLQ 重处理策略落地,并对照 patterns/dead-letter 文档的同事