Azure Web PubSub Python 技能
帮助 Python 开发者构建基于 WebSocket 的 Azure 实时消息与发布订阅功能。
文档推荐DefaultAzureCredential、角色限制和短期令牌,且警告不要记录含承载令牌的URL,支持最小权限与敏感数据意识;但匿名令牌示例、直接打印URL、发送/关闭连接及授权变更均无用户确认、影响范围说明或回滚流程,因此扣10分。
同步和异步生命周期、重试策略及基础连接检查均有示例,主流程可理解;但未提供该技能专属测试或可复现结果,部分操作/API命名需要另行核对,异常输入、权限失败、重连和错误反馈覆盖不足,因此扣13分。
触发词、Python服务端/客户端及同步异步场景较明确,也列出主要操作;但非适用边界、输入输出契约、版本兼容范围和中国大陆网络可达性未说明,且服务端与客户端范围可能造成触发歧义,因此扣6分。
SKILL.md采用安装、认证、生命周期、操作和参考文件的分层结构,含MIT许可证、作者和1.0.0版本,并有维护性参考索引;但缺少变更日志、明确维护责任/更新路径、FAQ、依赖版本、故障排查和完整限制说明,因此扣6分。
覆盖令牌生成、广播、用户/群组/连接操作、权限、客户端和异步路径,具备较直接的代码参考价值;但示例不能静态证明可运行,若干高级示例存在参数/API一致性风险,生产安全与错误处理仍需明显补充,因此扣9分。
文件提供具体代码、操作表和仓库级CI/测试材料,具备有限审计线索;但没有该技能的提交测试套件、第三方执行证据或版本化API交叉验证,静态审查无法独立复现关键路径,因此扣6分。
- 示例中的令牌URL包含承载凭据;不要打印、记录或通过不受信任渠道传递。
- 发送消息、关闭连接、授予/撤销权限和生成客户端令牌会产生外部影响,接入前应增加明确确认、授权边界和恢复方案。
- 需核对当前SDK文档中的高级方法和参数;参考示例使用WEBPUBSUB_ENDPOINT,而主文档只声明AZURE_WEBPUBSUB_HUB,配置契约不完整。
- 未提供中国大陆网络可达性、服务区域或离线替代方案证据。
它能做什么 & 适用场景
该技能面向 Azure Web PubSub Service Python SDK,覆盖服务端消息发送、连接与群组管理、权限控制以及客户端访问令牌生成。它也介绍 Python WebSocket 客户端 SDK 和异步服务客户端的用法。内容建议使用 DefaultAzureCredential,并要求客户端和异步凭据使用上下文管理器。适合需要实时通知、群组消息或多连接管理的 Azure Python 项目。
指导安装服务端与客户端 SDK;配置 Web PubSub Hub 和凭据相关环境变量;创建同步或异步 WebPubSubServiceClient;生成客户端访问令牌;向所有连接、用户、群组或单个连接发送文本或 JSON 消息;管理用户、连接与群组;检查连接或权限状态;授予和撤销权限;关闭连接;使用 WebPubSubClient 建立 WebSocket 客户端并处理连接和消息事件。
- 需要向多个在线客户端广播通知的 Python 后端开发者。
- 需要按用户、群组或连接定向发送实时消息的应用开发者。
- 需要实现群组聊天、实时状态更新或发布订阅模式的 Azure 项目团队。
- 需要使用同步或异步 Python SDK 管理 WebSocket 连接生命周期的开发者。
优缺点一览
- 覆盖服务端、客户端和异步客户端模式。
- 包含广播、定向发送、群组管理、连接管理和权限控制示例。
- 明确推荐 DefaultAzureCredential,并强调凭据、传输和令牌缓存的生命周期管理。
- 提供短期访问令牌、角色和 JSON 内容类型等安全与工程实践建议。
- 内容依赖 Azure Web PubSub 服务和网络连接,未说明本地模拟方案。
- 未提供该技能专属的测试覆盖或验收场景证据。
- 未说明 Azure 资源创建、部署和完整服务端配置流程。
- 示例没有给出具体 SDK 版本要求。
如何安装
可运行 npx skills add microsoft/skills,在安装向导中选择该技能。也可克隆仓库:git clone https://github.com/microsoft/skills.git,然后将 .github/plugins/azure-sdk-python/skills/azure-messaging-webpubsubservice-py 复制到目标 Agent 的技能目录,例如 your-project/.github/skills/。技能中的运行时依赖通过 pip install azure-messaging-webpubsubservice 和可选的 pip install azure-messaging-webpubsubclient 安装。
如何使用
在支持 Agent Skills 的编码代理中提出类似请求:使用 azure-messaging-webpubsubservice 为我的 Python 服务实现 Web PubSub 群组广播,并使用 DefaultAzureCredential 和上下文管理器。 触发词包括 azure-messaging-webpubsubservice、WebPubSubServiceClient、real-time、WebSocket 和 pub/sub。