Azure Cosmos DB .NET 资源管理技能
用 .NET 通过 ARM 部署和管理 Azure Cosmos DB 资源。
技能明确区分管理面与数据面,推荐 DefaultAzureCredential 且未硬编码密钥,具备一定权限边界;但示例直接输出主密钥和连接字符串,使用环境变量承载客户端密钥,也展示删除、故障转移和开放网络配置,缺少用户确认、最小权限、敏感数据保护、回滚与影响披露,因此扣分。
安装、认证、资源层级、核心 CRUD、吞吐量和部分错误处理路径较完整,示例之间总体一致;但未提供针对该技能的可执行测试、版本兼容验证、输入校验、幂等冲突处理和全面失败恢复说明,静态评估按上限保守扣分。
名称、描述、触发词以及管理面边界清晰,并覆盖账户、数据库、容器、吞吐量和 RBAC 相关场景;但未明确非适用场景之外的输入输出契约、区域/API 差异、权限前提、成本风险或中文环境支持,触发精度和环境适配证据有限。
front matter 提供名称、描述、MIT 许可、作者、版本和包名,正文采用安装、认证、工作流、参考文件和相关 SDK 的分层结构;但缺少变更日志、维护责任与更新路径、明确的 SDK 版本锁定、FAQ、已知限制和参考文件可验证版本说明,因此扣分。
内容直接覆盖常见 Cosmos DB ARM 配置任务,代码片段可作为生成代码的参考,管理面与数据面区分也有实际价值;但静态材料未证明代码可编译或可运行,多个示例可能依赖 SDK/API 版本细节,缺少完整 RBAC、网络、回滚和生产验收流程,因此按静态上限给分。
技能包含较多具体类型、方法、包版本和错误处理示例,仓库还提供 CI 与测试框架材料;但给定证据未展示该技能专属测试、真实运行结果或第三方交叉验证,且 CI 文件主要评估通用 harness,不能充分证明本技能关键路径,故低分。
- 不要在日志、终端输出或代理上下文中打印 PrimaryMasterKey、SecondaryMasterKey 或连接字符串;应使用安全存储和最小权限身份。
- 删除账户、故障转移、开放公网访问和吞吐量调整会产生外部影响或费用变化;执行前应要求用户确认,并提供备份、回滚或恢复计划。
- 当前版本标注与示例 API 的兼容性未由所给材料证明;编译前应核对 Azure.ResourceManager.CosmosDB 与 Azure.Identity 的实际版本及 API。
- 未提供该技能专属测试和运行结果,代码片段应视为待验证参考。
它能做什么 & 适用场景
该技能面向 Azure Cosmos DB 的管理平面操作,使用 Azure.ResourceManager.CosmosDB .NET SDK 创建和管理账户、数据库、容器及吞吐量设置。它还涵盖 ARM 身份验证、资源层级导航、密钥与连接字符串获取、RBAC 管理以及错误处理。它明确不处理文档 CRUD、查询或存储过程执行等数据平面操作,这些场景应使用 Microsoft.Azure.Cosmos。适合需要以 C# 自动化 Cosmos DB 资源配置的开发者。
指导代理安装 Azure.ResourceManager.CosmosDB 和 Azure.Identity,配置 Azure 订阅与凭据环境变量,并编写 C# 代码通过 ArmClient 导航订阅、资源组和 Cosmos DB 账户。它提供创建或更新 Cosmos DB 账户、SQL 数据库和 SQL 容器的示例,涵盖分区键、索引策略、TTL、一致性和自动故障转移。它还展示手动或自动缩放吞吐量配置、密钥和连接字符串读取,以及基于 RequestFailedException 的 ARM 错误处理。
- 负责 Azure 基础设施的 .NET 开发者,需要以代码创建 Cosmos DB 账户和资源组内的数据库、容器。
- 平台工程师需要为 Cosmos DB 配置手动或自动缩放吞吐量,并以幂等方式重复执行部署。
- 安全工程师或开发者需要使用 DefaultAzureCredential、托管身份或服务主体访问 ARM 资源,而不是硬编码密钥。
- 需要读取 Cosmos DB 账户密钥、连接字符串或管理 RBAC 的 Azure 应用团队。
优缺点一览
- 范围边界清晰,明确区分 Cosmos DB 管理平面和数据平面。
- 提供从 ArmClient、订阅、资源组到账户、数据库和容器的完整资源层级示例。
- 覆盖幂等 CreateOrUpdateAsync、长时间操作、吞吐量、认证和 ARM 错误处理。
- 给出稳定版 1.4.0、预览版 1.4.0-beta.13 以及相关参考文件入口。
- 只覆盖 .NET 管理平面;不能替代 Microsoft.Azure.Cosmos 的文档操作和查询指导。
- 源材料未提供该单项技能的独立测试结果或完整参考文件内容。
- 示例依赖 Azure 订阅、相应权限和外部 Azure 服务;本地环境变量与权限配置仍需自行完成。
如何安装
在 Copilot CLI 或兼容的 skills.sh 安装流程中运行:
npx skills add microsoft/skills
在安装向导中选择 azure-resource-manager-cosmosdb-dotnet。该技能位于 .github/plugins/azure-sdk-dotnet/skills/azure-resource-manager-cosmosdb-dotnet/。
如何使用
向代理提出与管理平面相关的请求,例如:"Create a Cosmos DB account named my-cosmos-account in Azure using Azure.ResourceManager.CosmosDB and configure a SQL database and container." 同时提供 AZURE_SUBSCRIPTION_ID;若使用 DefaultAzureCredential 进行生产认证,还需设置 AZURE_TOKEN_CREDENTIALS=prod。不要用它处理文档 CRUD、查询或存储过程执行;这些操作应改用 Microsoft.Azure.Cosmos。
对比同类
与 Microsoft.Azure.Cosmos 的区别:本技能使用 Azure.ResourceManager.CosmosDB 进行管理平面操作,例如创建账户、数据库、容器、配置吞吐量和管理 RBAC;Microsoft.Azure.Cosmos 用于数据平面操作,例如文档 CRUD、查询和存储过程执行。