Azure Service Bus Python 技能
为 Python 开发者提供 Azure Service Bus 队列与发布/订阅消息模式的实用指导。
文档优先推荐 DefaultAzureCredential、避免密钥,并说明了部分认证数据流;但安装依赖和权限范围未细化,脚本允许使用连接字符串,且提供 queue/topic/subscription delete 操作而无确认、回滚或恢复说明;DLQ 示例还会打印消息体,可能暴露敏感数据。因此扣除最小权限、敏感数据处理、外部副作用和恢复保障分数。
主路径覆盖发送、接收、结算、会话、DLQ 和管理操作,但多个示例存在未导入名称、环境变量要求与示例不一致、异步凭据未始终关闭等问题;引用脚本也缺少异常分类和结构化失败反馈。仓库有通用 CI 与测试,但未证明该技能关键路径可执行,因此按静态校准限制保持在 10 分以下。
触发词、Python SDK 目标和队列/主题/订阅场景较清楚,且覆盖同步异步与多种消息模式;但未明确不适用边界、版本兼容矩阵、输入输出契约或中国 Azure 环境适配,核心功能依赖 Azure 服务连通性,缺少中国大陆网络和云区域说明。因此扣除边界、环境适配和触发精度分数。
SKILL.md 具有安装、认证、生命周期、操作模式、最佳实践和参考文件分层,声明 MIT、作者和 1.0.0 版本;但没有变更日志、维护责任、升级路径、依赖版本、FAQ 或系统化故障排查,示例与引用脚本之间也有隐含假设。因此扣除可维护性和治理完整性分数。
内容能够直接帮助用户编写常见 Service Bus 发送、接收、结算、会话、DLQ 和管理代码,边际价值明显;但若干片段需要补充导入、校正 API 或补齐错误处理,且没有该技能专属可验证输出或测试结果,交付前仍需较多审查。因此按静态上限给出中等偏上的有效性分数而非满分。
文件提供了可审阅的代码、配置示例、引用文档和仓库级 CI/测试线索;但没有该技能专属测试套件、真实运行结果、依赖锁定或多来源交叉验证,仓库通用测试不能证明此路径的关键示例。因此仅给有限静态可验证性分数。
- 执行 setup_servicebus.py 的 delete 命令前必须增加人工确认、最小权限和可恢复备份;当前文档未提供回滚方案。
- 不要在日志或 DLQ 分析中直接打印消息体、异常全文或应用属性,除非已完成脱敏。
- 发布前应逐段验证示例的导入、SDK API、异步凭据生命周期和环境变量要求,并补充针对该技能的 CI/测试。
- 面向中国大陆用户时,应说明 Azure 公有云/中国区差异、网络可达性和认证配置限制。
它能做什么 & 适用场景
该技能面向使用 Azure Service Bus Python SDK 构建企业消息系统的开发者。它覆盖队列、主题、订阅、消息发送与接收、消息结算、会话、定时消息和死信队列。内容同时提供同步与异步客户端示例,并建议使用 DefaultAzureCredential 和上下文管理器。适合需要可靠云端消息通信的 Azure Python 项目,但不提供完整的部署、基础设施或服务端配置指南。
指导安装 azure-servicebus 与 azure-identity,配置 Service Bus 命名空间、队列、主题和订阅环境变量;生成使用 ServiceBusClient、sender 和 receiver 的同步或异步 Python 代码;演示批量发送、PEEK_LOCK 与 RECEIVE_AND_DELETE、complete/abandon/dead-letter/defer、主题订阅、FIFO 会话、定时消息和死信队列操作;引用模式文档与 setup_servicebus.py CLI 的位置。
- Python 后端开发者需要向 Azure Service Bus 队列发送和接收业务消息时。
- 企业应用需要使用主题和订阅实现发布/订阅分发时。
- 需要 PEEK_LOCK、消息完成、放弃和死信处理的可靠消费流程时。
- 需要按会话保持 FIFO 顺序处理订单或其他相关消息时。
- 需要批量发送、定时投递或监控死信队列的 Azure 项目时。
优缺点一览
- 覆盖队列、主题、订阅、会话、批量、定时消息和死信队列等常见 Service Bus 场景。
- 同时提供同步和异步 Python 示例,并明确客户端及异步凭据的生命周期管理。
- 强调 DefaultAzureCredential、生产环境凭据限制和消息结算等实践。
- 内容聚焦 SDK 使用,未提供完整的 Azure 资源创建、网络配置或权限授予流程。
- 示例依赖已有的 Service Bus 命名空间及实体;所需环境变量值需要自行准备。
- 未提供该技能专属测试套件或测试覆盖证据。
如何安装
安装整个仓库的技能集合:运行 npx skills add microsoft/skills,在向导中选择所需技能。技能安装到所选 Agent 的目录,例如 GitHub Copilot 使用 .github/skills/。该技能的仓库路径是 .github/plugins/azure-sdk-python/skills/azure-servicebus-py/。Python 依赖安装命令为 pip install azure-servicebus azure-identity。
如何使用
在编码 Agent 中提出类似“使用 Python Azure Service Bus,为订单队列实现异步发送和 PEEK_LOCK 接收,并正确结算消息”的请求。代码应配置 SERVICEBUS_FULLY_QUALIFIED_NAMESPACE 及相应的队列、主题或订阅变量;优先使用 DefaultAzureCredential,并为同步客户端使用 with、为异步客户端使用 async with。