技能 @azure/cosmos (TypeScript/JavaScript)
📦

@azure/cosmos (TypeScript/JavaScript)

安全

使用 TypeScript 构建 Cosmos DB 应用程序

开发人员需要高效地执行 Azure Cosmos DB 文档的 CRUD 操作。此技能提供用于查询、批量操作和正确身份验证的 TypeScript 模式。

支持: Claude Codex Code(CC)
🥉 72 青铜
1

下载技能 ZIP

2

在 Claude 中上传

前往 设置 → 功能 → 技能 → 上传技能

3

开启并开始使用

测试它

正在使用“@azure/cosmos (TypeScript/JavaScript)”。 Create a product document with name 'Laptop', price 999.99, category 'electronics'

预期结果:

成功在容器 'products' 中创建了 id 为 'prod-8a7b2c' 的文档。请求费用:5.21 RU。

正在使用“@azure/cosmos (TypeScript/JavaScript)”。 Query products where price < 1000 and category = 'electronics'

预期结果:

检索到 15 个符合查询条件的产品。总请求费用:3.47 RU。结果包括:Laptop、Tablet、Wireless Mouse、USB Hub...

安全审计

安全
v1 • 2/24/2026

Prompt-only instructional skill containing documentation for Azure Cosmos DB SDK usage. Static analysis scanned 0 files with 0 findings and risk score 0/100. No executable code, network access, or security concerns detected. The skill teaches proper security practices including AAD authentication and parameterized queries.

0
已扫描文件
0
分析行数
0
发现项
1
审计总数
未发现安全问题
审计者: claude

质量评分

38
架构
100
可维护性
87
内容
50
社区
100
安全
74
规范符合性

你能构建什么

构建 SaaS 应用程序的后端开发人员

使用分层分区键实现多层租户数据层,在隔离客户数据的同时保持查询性能。

处理高容量事务的数据工程师

使用批量操作高效地每秒插入、更新和删除数千个文档,并带有适当的错误处理。

创建实时应用的全栈开发人员

构建变更源处理器并实现乐观并发以处理来自多个客户端的并发更新。

试试这些提示

基础文档创建
创建一个 TypeScript 函数,将新产品文档插入到 Azure Cosmos DB 中。产品应包含 id、name、price 和 category 字段。使用 DefaultAzureCredential 进行身份验证,并包含对重复文档的适当错误处理。
参数化查询实现
编写一个 TypeScript 服务方法,查询 Cosmos DB 中指定价格范围内的产品。使用带有命名参数的 SqlQuerySpec 来防止注入攻击。包含使用延续令牌的分页支持。
数据迁移的批量操作
实现一个批量导入函数,使用 executeBulkOperations 处理包含 1000 多个文档的数组。通过记录失败操作及其状态码来处理部分失败,同时继续处理成功的操作。
使用 ETag 的乐观并发控制
创建一个更新函数,使用 ETag 来防止多个用户修改同一文档时丢失更新。当 ETag 先决条件失败时返回特定错误,以便客户端可以刷新并重试。

最佳实践

  • 在生产环境中使用 DefaultAzureCredential 进行身份验证,而不是使用账户密钥
  • 始终使用带有 SqlQuerySpec 的参数化查询以防止注入并改进查询计划缓存
  • 在所有点操作中指定分区键值以避免跨分区查询开销

避免

  • 直接在代码中使用账户密钥而不是使用环境变量或托管身份
  • 在大型容器上执行没有 WHERE 子句的 SELECT * 查询
  • 忽略 429 速率限制错误而不是实现指数退避重试逻辑

常见问题

我应该为 Cosmos DB 使用哪种身份验证方法?
在生产环境中使用带有 Azure AD 身份验证的 DefaultAzureCredential。它支持托管身份、CLI 凭据和环境变量。仅将账户密钥用于本地开发。
如何选择一个好的分区键?
选择具有高基数和均匀分布的属性。常见选择包括 customerId、tenantId 或合成键。避免使用低基数的属性,如 status 或布尔值。
create、upsert 和 replace 之间有什么区别?
如果文档已存在则 create 会失败。upsert 根据 id 创建或更新。replace 要求文档存在并替换整个文档。对于部分更新请使用 patch。
如何处理速率限制(429 错误)?
SDK 包含内置的重试逻辑。对于自定义处理,请捕获代码为 429 的 ErrorResponse,并使用 retryAfterInMs 属性实现指数退避。
我可以将此技能与 Cosmos DB MongoDB API 一起使用吗?
不可以。此技能仅适用于 NoSQL (SQL) API。对于 MongoDB API,请使用官方 MongoDB 驱动程序或 Azure Cosmos DB MongoDB 驱动程序。
如何优化查询性能?
使用选择性投影而不是 SELECT *,在已索引的属性上使用 WHERE 子句进行过滤,在 FeedOptions 中指定 partitionKey,仅在必要时启用跨分区查询。

开发者详情

文件结构

📄 SKILL.md