Azure Cosmos DB Java 开发技能
帮助 Java 开发者构建具备分区、全球分布与响应式访问能力的 Cosmos DB 应用。
内容使用环境变量承载 Cosmos 密钥,并展示了数据库、容器和项目删除操作,但没有最小权限建议、用户确认、数据流披露、脱敏、回滚或删除恢复说明;未见恶意行为或隐蔽外传,因此保留中等分数并扣除安全治理不足的分数。
主文档和 examples.md 覆盖同步、异步、CRUD、查询及错误处理,但存在明显可疑路径:同步 createDatabaseIfNotExists 的返回值被链式调用 map,示例中同一作用域重复声明变量,部分异步删除链依赖删除响应中的 item,且未提供针对该技能的可执行测试;静态证据不足,分数低于10。
名称、Java SDK 目标、Cosmos DB 场景和触发短语较清楚,覆盖同步、异步、分区、查询和一致性;但未声明非适用范围、输入输出边界、版本兼容矩阵或语义误触发防护,也没有中文使用或中国大陆网络可达性说明,因此扣分。
具备 front matter、MIT 许可、1.0.0 版本、安装说明、分层参考示例、最佳实践、错误处理和官方参考链接;但使用 LATEST、占位版本和占位凭据,未提供变更日志、维护责任人、更新路径或已知限制,故未满分。
内容能帮助用户快速生成 Cosmos Java 客户端、CRUD 和查询代码,并包含成本单位和重试提示;但示例存在编译或运行正确性疑点,删除等有副作用操作缺少确认和回滚 guidance,用户仍需较多审查修正,按静态校准不超过7。
提供 Maven、API、产品、样例、性能和故障排查等链接,具备一定可追溯性;但这些是参考链接而非该技能自身的验证记录,未见覆盖 azure-cosmos-java 关键路径的提交测试或第三方执行结果,因此静态上限内给分。
- 不要直接使用 LATEST;应锁定经过验证的 azure-cosmos 版本或 Azure SDK BOM 版本。
- 将 COSMOS_KEY 认证替换或优先补充基于 DefaultAzureCredential 的最小权限方案,并避免在日志或示例中暴露密钥。
- 删除数据库、容器和项目的示例具有破坏性;生产使用前应加入明确确认、备份和恢复策略。
- 编译并验证同步 map 链、重复变量声明以及异步删除响应访问方式后再采纳示例。
- 文档未说明中国大陆网络可达性和中文支持;依赖 Azure 官方服务与在线文档时应单独评估网络环境。
它能做什么 & 适用场景
该技能为 Azure Cosmos DB NoSQL API 的 Java SDK 提供开发指导。内容覆盖 Maven 安装、密钥认证、同步与异步客户端、数据库和容器管理、CRUD、查询、分区键、一致性级别及请求单位。它还给出连接配置、错误处理和生产实践示例,适合需要在 Java 应用中接入 Cosmos DB 的开发者。
指导开发者添加 azure-cosmos Maven 依赖,读取 COSMOS_ENDPOINT 和 COSMOS_KEY 环境变量,创建 CosmosClient 或 CosmosAsyncClient,管理数据库与容器,执行项目创建、读取、更新、删除和查询操作,并处理 409 与 429 等 CosmosException。
- Java 后端开发者需要为新应用接入 Azure Cosmos DB NoSQL API 时,使用该技能完成客户端初始化和 Maven 配置。
- 需要高吞吐或响应式处理的团队,可参考 CosmosAsyncClient 与异步链式调用示例。
- 设计 Cosmos DB 数据模型的开发者,可用分区键、高基数和请求均衡建议规划容器。
- 构建全球分布式应用的团队,可参考首选区域、一致性级别和直接连接模式配置。
- 需要排查数据库操作失败或限流的开发者,可参考状态码、请求费用和重试时间的错误处理方式。
优缺点一览
- 覆盖同步与异步客户端以及响应式链式调用。
- 包含从依赖安装到数据库、容器、CRUD 和查询的完整基础流程。
- 提供分区键、一致性、请求单位、区域偏好和限流处理等实用指导。
- 内容包含可直接改写的 Java 和 Maven 示例。
- 认证示例仅展示账户密钥方式,未提供其他认证方案。
- 示例使用 `LATEST` 依赖版本,未锁定具体 SDK 版本。
- 未提供该单项技能的测试覆盖或兼容性矩阵。
- 需要已有 Azure Cosmos DB 账户、端点和主密钥。
如何安装
在项目的 Maven 配置中加入 com.azure:azure-cosmos 依赖,或通过 Azure SDK BOM 管理版本。设置 COSMOS_ENDPOINT 和 COSMOS_KEY 环境变量。整个技能集合可使用 npx skills add microsoft/skills 安装;README 未说明如何单独安装该技能目录。
如何使用
在支持 Agent Skills 的编码代理中,将需求描述为“使用 CosmosClient Java 创建 Cosmos DB 数据库和容器”或“用 CosmosAsyncClient 实现 Cosmos DB Java CRUD”。代理可依据技能中的 Java、Maven、认证、分区键、查询和错误处理模式生成代码。