Azure Cosmos DB Rust 开发技能
帮助 Rust 开发者使用官方 Azure Cosmos DB SDK 构建文档型 NoSQL 应用。
技能明确限定使用官方 azure_data_cosmos crate,禁止非官方社区 crate,并建议使用托管身份、环境变量和 RBAC,降低依赖与凭据风险;但 CRUD/删除示例没有用户确认、最小权限细分、数据流披露或回滚说明,因此扣分。
安装、认证、客户端层级和 CRUD 示例覆盖了主要路径,且错误使用 Result 传播;但没有针对该技能的提交测试、版本锁定、异常输入处理或可诊断失败反馈,部分 API 调用的可编译性也无法静态确认,因此按静态上限保守扣分。
名称、受众、Rust/Cosmos DB 场景和触发词较清晰,覆盖文档 CRUD、容器和分区键;但未声明非适用范围、输入输出边界、查询/分页/重试等场景,也没有中文支持或中国大陆网络可达性说明,因此扣分。
文档结构清楚,包含安装、环境变量、认证、客户端层级、示例、最佳实践、许可证元数据和参考链接;但缺少 SDK 版本策略、变更记录、维护责任与更新流程、故障排查和更多完整示例,因此未给满分。
内容可为常见 Cosmos DB Rust CRUD 编码提供直接起点,并包含补丁操作、密钥认证和 RBAC 提示;但静态材料没有验证代表性代码可运行,也缺少查询、分页、错误恢复和生产配置细节,输出仍可能需要较多审查,因此保守评分。
技能提供 docs.rs、crates.io 和 Azure SDK 源码引用,并明确官方 crate 来源;但没有技能专属测试或已提交执行结果,仓库级测试材料未覆盖该路径的关键行为,因此证据覆盖有限。
- 所有结论均来自静态文件阅读,未执行 cargo 构建、示例或测试。
- 删除示例会产生外部数据变更,但未展示确认、备份或恢复流程。
- 参考链接和依赖版本未固定;使用前应核对当前 azure_data_cosmos API 与发布版本。
- 未说明中国大陆网络访问 Azure 服务、crates.io 或 docs.rs 时的可达性与替代方案。
它能做什么 & 适用场景
该技能面向通过 Rust 使用 Azure Cosmos DB NoSQL API 的开发者。它覆盖 CosmosClient、数据库和容器客户端,以及带分区键的文档创建、读取、更新、删除和补丁操作。内容还说明 Entra ID 与账户密钥认证、RBAC 角色、区域路由和客户端复用等实践。它适合需要直接编写 Azure Cosmos DB Rust 代码的项目,但不负责资源创建、部署或完整测试套件。
指导代理安装 azure_data_cosmos、azure_identity、serde、serde_json 和 tokio,配置 COSMOS_ENDPOINT,并生成使用 DeveloperToolsCredential 或 ManagedIdentityCredential 的 Rust 认证代码。它展示如何创建 CosmosClient、获取 DatabaseClient 和 ContainerClient,并执行项目级操作、容器访问以及带分区键的项目 CRUD。它还提供 PatchInstructions、key_auth 特性、Cosmos DB 内置数据读取者和数据参与者角色,以及 ProximityTo 区域路由的示例。
- Rust 开发者需要把文档写入或读取 Azure Cosmos DB NoSQL 容器时。
- 团队需要实现带分区键的项目创建、更新、查询或删除时。
- 本地开发需要 DeveloperToolsCredential、生产环境需要托管身份认证时。
- 应用需要通过账户密钥认证作为 Entra ID 替代方案时。
- 跨区域 Cosmos DB 应用需要将请求路由到邻近区域以降低延迟时。
优缺点一览
- 提供了可复制的 Cargo 安装命令和 Rust 认证、客户端层级及 CRUD 示例。
- 明确要求使用官方 azure_data_cosmos crate,并指出常见非官方 crate。
- 覆盖 Entra ID、账户密钥、RBAC、分区键和区域路由等关键实践。
- MIT 许可,且属于 Microsoft skills 开源集合。
- 源材料没有给出该 Rust 技能的专属测试场景或测试覆盖证据。
- 内容聚焦客户端使用,不涵盖 Cosmos DB 账户、数据库或容器的基础设施部署。
- 必须配置 Cosmos endpoint,并正确处理认证和分区键。
- 源材料没有说明 azure_data_cosmos 的具体版本。
如何安装
安装整个技能集合:运行 npx skills add microsoft/skills,并在向导中选择该技能。README 说明技能会安装到所选代理的目录,例如 GitHub Copilot 使用 .github/skills/;源技能位于 .github/plugins/azure-sdk-rust/skills/azure-cosmos-rust/SKILL.md。项目依赖可运行:cargo add azure_data_cosmos azure_identity serde serde_json tokio;若直接使用 azure_core 类型,再运行 cargo add azure_core。
如何使用
在支持 Agent Skills 的编码代理中,使用触发词或明确请求,例如:“在 Rust 中使用 CosmosClient 实现带 partition key 的 Cosmos DB 文档 CRUD”或“为 Rust Cosmos DB 项目配置 key_auth”。配置 COSMOS_ENDPOINT=https://<account>.documents.azure.com/,并使用官方 azure_data_cosmos crate;不要使用 azure_cosmos 或 azure_sdk_for_rust。
对比同类
该技能将账户密钥认证作为 Entra ID 的可选替代方案,并建议本地使用 DeveloperToolsCredential、生产环境使用 ManagedIdentityCredential。它明确区分官方 azure_data_cosmos crate 与 azure_cosmos、azure_sdk_for_rust 等非官方 crate。