SuperAPI AI 工具集

azure-cosmos-rust

数据与分析

查看项目

更新于 10-16 02:02

技能介绍

用途

Azure Cosmos DB SDK for Rust 是 Azure Cosmos DB NoSQL API 的客户端库,适用于全球分布式、多模型数据库。当 Rust 应用需要 Cosmos DB NoSQL 的文档增删改查、分区键点读、容器访问,或显式启用的预览版补丁(PATCH)时,可使用该技能中的示例。

安装与环境变量

安装命令:

cargo add azure_data_cosmos@=0.37.1 azure_identity@=1.0.0 azure_core@=1.1.0

需要设置的环境变量:

export COSMOS_ENDPOINT="https://<account>.documents.azure.com:443/"
export COSMOS_DATABASE="mydb"
export COSMOS_CONTAINER="mycontainer"

示例说明这些操作需要已审阅的兼容 crate 组合,并要求替换每一个资源占位符,不得使用生产数据做演示写入。

认证方式

示例使用 Entra ID 认证,通过 DeveloperToolsCredential 创建凭据,并以 AccountReference 与 CosmosClient 构建客户端,路由策略使用 RoutingStrategy::ProximityTo。

可选地,可通过特性开关启用基于密钥的认证:

cargo add azure_data_cosmos@=0.37.1 --features key_auth

最佳实践建议优先使用 Entra ID 认证(DeveloperToolsCredential),而非密钥认证。

客户端层级

  • CosmosClient:账户级操作,直接实例化。
  • DatabaseClient:数据库操作,通过 client.database_client() 获取。
  • ContainerClient:容器/项操作,通过 database.container_client() 获取。

核心工作流

示例涵盖以下操作:

  • 获取数据库与容器客户端;
  • 创建文档(create_item),文档类型需派生 Serialize 与 Deserialize;
  • 读取文档(read_item),并用 into_model()? 反序列化为自定义类型;
  • 替换文档(replace_item);
  • 补丁文档(patch_item),需显式启用预览特性 preview_patch,使用 PatchInstructions 与 PatchOperation::set;
  • 删除文档(delete_item)。

适用场景

适用于需要 Cosmos DB NoSQL 文档 CRUD、分区键点读、容器访问或显式选择的预览版 PATCH 的 Rust 应用。

限制与注意事项

示例是异步应用代码中的片段,需要兼容且固定版本的 Azure crate,以及必需的 Tokio/Serde/Futures 依赖;使用前需核实所选版本的 API。示例基于官方源码与参考文档审阅,但未在本地编译,也未对云账户实际运行。

需要授权的租户、资源与最小权限身份。写入、覆盖、删除、备份获取与账户变更需要相应权限范围;清理只能移除明确标识的可丢弃资源。应限制请求、重试与下载字节数,不得记录载荷、凭据或机密值。

输出不能替代针对特定环境的验证、测试或专家审阅。若缺少必要输入、权限、安全边界或成功标准,应停止并请求澄清。

PATCH 预览版不保证可用于生产,需审查其选定策略、冲突/重试行为与请求单位(RU)成本。

参考链接

  • API 参考:https://docs.rs/azure_data_cosmos
  • 源代码:https://github.com/Azure/azure-sdk-for-rust/tree/main/sdk/cosmos/azure_data_cosmos
  • crates.io:https://crates.io/crates/azure_data_cosmos