Azure Service Bus TypeScript 技能
用 Azure Service Bus 构建可靠的企业消息应用。
使用 DefaultAzureCredential、托管身份和环境变量认证,体现了较好的凭据隔离;同时明确了 receive-and-delete 的消息丢失风险,并提供了资源关闭和 DLQ 模式。扣分原因是未系统说明最小 RBAC 权限、敏感消息日志脱敏、外部数据流、用户确认或回滚策略,且示例直接打印消息体。
文档覆盖发送、接收、会话、DLQ、重试、锁续期和优雅关闭,异常处理说明较完整。静态证据存在明显不确定性:批处理示例创建 newBatch 后未更新 batch,延迟消息和 deferred message 的参数示例存在不一致,部分 SDK 行为未给出版本或可复现依据。按静态校准不超过10,故扣分。
目标受众和适用场景清晰,覆盖队列、主题、订阅、会话和企业消息模式。扣分原因是缺少明确的非适用边界、输入输出契约、触发条件和版本兼容范围,也没有中文使用支持或中国大陆网络可达性说明。
技能具备 front matter、MIT 许可证、版本号、安装说明、环境变量、分层参考文档和主题化示例;仓库还提供许可证、安全政策、CI 和维护信号。扣分原因是没有技能级 changelog、明确维护负责人和更新路径,缺少 FAQ、故障排查入口和依赖版本锁定说明。
示例可帮助编码代理完成常见 Service Bus 集成,并提供直接可改写的 TypeScript 代码和可靠性模式。扣分原因是示例需要人工校验,存在潜在错误或不完整处理,实体创建、RBAC 配置、测试、序列化约束和生产部署细节仍需补充;静态校准下不得超过7。
仓库提供通用测试 harness、Vitest 测试和若干 CI 工作流,说明存在一定质量验证基础。扣分原因是给定材料未证明这些测试覆盖该 Service Bus 技能的关键路径,也未提供该技能专属验收标准、第三方执行结果或多源交叉验证;静态评估最高不超过5。
- 修正批量发送示例中 newBatch 未赋回 batch 的问题,并统一 receiveDeferredMessages、scheduleMessages 等 API 参数形式。
- 生产使用前应核实 @azure/service-bus 和 @azure/identity 的版本、RBAC 最小权限、锁续期与自动完成语义。
- 避免在日志中输出完整消息体或会话状态;补充敏感数据处理、重试幂等性、回滚和用户确认要求。
- 补充该技能专属验收测试、已验证 SDK 版本、已知限制、维护负责人和更新路径。
它能做什么 & 适用场景
该技能面向使用 JavaScript 或 TypeScript 的 Azure Service Bus 开发。它提供队列、主题与订阅、消息会话、死信队列、定时消息、消息延迟和非破坏性查看的实现示例。内容使用 @azure/service-bus,并结合 @azure/identity 的 Microsoft Entra 凭据进行身份验证。适合需要企业级消息传递模式的 Azure 应用开发者。
指导开发者安装 @azure/service-bus 和 @azure/identity,配置 Service Bus 命名空间、队列、主题及订阅环境变量,并创建 ServiceBusClient。示例覆盖向队列或主题发送单条及批量消息、接收和结算消息、事件驱动订阅、会话状态管理、死信处理、定时发送与取消、消息延迟,以及查看消息。还说明了 Peek-Lock 与 Receive-and-Delete 两种接收模式及客户端复用、资源关闭和错误处理实践。
- 使用 TypeScript 开发订单或工作流系统,需要把消息发送到 Azure Service Bus 队列。
- 构建事件驱动应用,需要通过主题和订阅分发订单创建等业务事件。
- 处理同一工作流或业务分组内的有序消息,需要使用消息会话和会话状态。
- 开发消息消费者,需要批量接收、完成、放弃、延迟或转移消息到死信队列。
- 需要未来投递消息或在不移除消息的情况下检查队列内容的 Azure 应用开发者。
优缺点一览
- 覆盖队列、主题订阅、会话、死信、定时消息、延迟和消息查看等常见 Service Bus 工作流。
- 提供可直接改写的 TypeScript 代码片段,包括批量发送和事件驱动接收。
- 明确建议本地使用 DefaultAzureCredential,生产环境使用托管身份或工作负载身份凭据。
- README 记录 azure-servicebus-ts 有 14 个测试场景。
- 仅针对 JavaScript/TypeScript 的 @azure/service-bus SDK,不覆盖 Python、.NET 或 Java 实现。
- 需要已配置的 Azure Service Bus 资源和 Microsoft Entra 身份验证环境。
- 技能正文提供模式示例,但未包含完整项目脚手架、部署配置或故障排查实现。
- 引用的 queues-topics.md 和 error-handling.md 内容未包含在给定材料中。
如何安装
在 Copilot CLI 或其他支持该集合的安装流程中运行:npx skills add microsoft/skills。根据向导选择 azure-servicebus-ts;技能会安装到所选 Agent 的目录,例如 GitHub Copilot 使用 .github/skills/。README 未提供仅安装该单个技能的独立 npx 命令。项目代码还需要运行:npm install @azure/service-bus @azure/identity。
如何使用
将技能加载到编码 Agent 后,可使用类似“请用 @azure/service-bus 为我的 TypeScript 应用实现一个带 Microsoft Entra 身份验证的队列消费者,并处理完成、死信和错误回调”的请求。按示例设置 SERVICEBUS_NAMESPACE、SERVICEBUS_QUEUE_NAME 等环境变量;若生产环境使用 DefaultAzureCredential,还需设置 AZURE_TOKEN_CREDENTIALS=prod 或指定凭据。随后根据需要创建 sender、receiver 或 session receiver,并在完成后关闭资源。