Azure Event Hubs Rust 技能
帮助 Rust 开发者使用官方 Azure SDK 构建事件发送、批量处理和分区消费流程。
技能明确要求使用官方 azure_messaging_eventhubs crate,禁止非官方 crate,并建议使用托管身份、避免硬编码凭据;同时列出发送者、接收者和所有者 RBAC 角色,具备基本权限与凭据安全意识。扣分在于未说明数据流、敏感事件内容处理、外部发送/接收操作的用户确认、最小权限选择、审计或回滚机制,DeveloperToolsCredential 的本地凭据范围也未解释。
安装、认证、发送、批量发送、分区接收和起始位置示例之间基本一致,且包含事件级错误匹配。扣分在于未固定 crate/API 版本,没有该技能路径专属测试或构建证据,未覆盖连接失败、权限错误、空流、重连、取消、重复消费和检查点等关键异常;静态审查限制分数不超过10。
名称、描述和触发词明确,覆盖 Rust Event Hubs 发送、接收、批处理和分区起点场景。扣分在于未声明不适用范围、输入输出边界、分区发现或生产部署限制,也没有中文使用说明;其核心功能依赖 Azure 服务和 crates.io,面向中国网络环境的可达性与替代方案未说明。
文档结构清晰,包含安装、环境变量、概念、认证、核心工作流、RBAC、最佳实践和参考链接,并声明 MIT 许可及作者元数据。扣分在于缺少版本策略、变更记录、维护负责人和更新路径、故障排查、兼容性说明及完整可运行项目;“不要使用 0.21.0”警告没有解释依据或替代版本。
示例能直接表达 ProducerClient/ConsumerClient 的核心调用,并覆盖单事件、批量发送、分区接收和起始位置控制,足以支持部分基础任务。扣分在于代码片段缺少完整上下文、生命周期管理、重试/检查点和生产配置,消费者示例可能无限运行;未提供该路径的执行验证,静态校准下不超过7。
技能提供 docs.rs、crates.io 和 Azure SDK 源码链接,并明确官方 crate 来源,具备一定可追溯性。扣分在于链接未固定版本,技能本身没有测试、锁定依赖、示例项目或结果证据;仓库级 CI/测试材料未证明覆盖此具体技能路径,静态校准下不超过5。
- 不要将 DeveloperToolsCredential 示例直接用于生产;应明确使用 ManagedIdentityCredential、所需 RBAC 和凭据来源。
- 发送事件是外部且可能不可逆的数据写入,实施前应确认目标命名空间、Event Hub、数据敏感性和最小 RBAC 权限。
- 先锁定并验证 azure_messaging_eventhubs 的兼容版本;当前文档未提供版本号、构建结果或失败排查指南。
- 补充重试、取消、重连、检查点、重复消费和消费者关闭逻辑,并评估中国大陆网络对 Azure/crates.io 依赖的可达性。
它能做什么 & 适用场景
该技能面向使用 Rust 开发 Azure Event Hubs 应用的开发者。它介绍官方 azure_messaging_eventhubs crate,以及 ProducerClient 和 ConsumerClient 的核心用法。内容覆盖单事件发送、批量发送、按分区接收、消费起始位置和 Entra ID 身份验证。它适合需要流式数据摄取或批处理的应用,但仍需要开发者自行准备 Azure Event Hubs 资源、权限和运行环境。
指导用户通过 cargo add 添加 azure_messaging_eventhubs、azure_identity、tokio 和 futures;配置 EVENTHUBS_HOST 与 EVENTHUB_NAME;使用 DeveloperToolsCredential 或生产环境中的 ManagedIdentityCredential 创建客户端;调用 ProducerClient 发送单个事件或批量发送事件;使用 ConsumerClient 打开分区接收器并通过异步流读取事件;设置 Earliest 或 Latest 消费起始位置;按事件处理接收成功和错误结果;根据发送、接收或完全访问需求配置 Azure Event Hubs RBAC 角色。
- Rust 开发者需要将应用事件发送到 Azure Event Hubs 进行流式数据摄取。
- 团队需要从指定分区接收并处理有序事件。
- 高吞吐场景需要使用 create_batch 和 send_batch 批量发送事件。
- 开发者需要控制消费者从最早事件或最新事件开始读取。
- 本地开发使用 DeveloperToolsCredential,生产环境使用托管身份进行认证。
优缺点一览
- 针对 Rust Azure Event Hubs SDK 提供了可直接改写的发送、批量发送和分区消费示例。
- 明确要求使用官方 azure_messaging_eventhubs crate,并提醒不要使用非官方 crate。
- 覆盖本地开发与生产环境的不同身份验证方式。
- 包含批量吞吐优化、错误处理和消费起始位置等实用建议。
- 依赖现有 Azure Event Hubs 命名空间、Event Hub 和正确的 RBAC 权限。
- 内容主要是 SDK 使用指导,不包含完整应用、部署配置或运维方案。
- README 的测试覆盖摘要未列出 Rust 技能,来源中没有该技能的专门测试证据。
- 来源没有说明成本、性能基准或支持的 Rust 版本。
如何安装
先运行 npx skills add microsoft/skills,在安装向导中选择 azure-eventhub-rust。该集合会将技能安装到所选 Agent 的技能目录;README 未提供该单个技能的独立安装命令。项目依赖可运行 cargo add azure_messaging_eventhubs azure_identity tokio futures 添加。
如何使用
在支持 Agent Skills 的编码代理中使用类似“请用 Rust 和官方 azure_messaging_eventhubs crate 实现 Azure Event Hubs 批量发送和分区消费”的请求,或使用触发词“event hubs rust”“ProducerClient rust”“ConsumerClient rust”“send event rust”“streaming rust”“eventhub rust”。需要提供 EVENTHUBS_HOST 和 EVENTHUB_NAME,并为 Entra ID 身份分配相应的 Azure Event Hubs Data Sender、Data Receiver 或 Data Owner 角色。