@azure/cosmos (TypeScript/JavaScript)
TypeScript で Azure Cosmos DB アプリケーションを構築する
開発者は Azure Cosmos DB ドキュメントに対して効率的に CRUD 操作を行う必要があります。このスキルは、クエリ、バッチ操作、適切な認証のための TypeScript パターンmos DB ドキュメントに対して効率的に CRUD 操作を行う必要があります。このスキルは、クエリ、バルク操作、適切な認証のための TypeScript パターンを提供します。
スキルZIPをダウンロード
Claudeでアップロード
設定 → 機能 → スキル → スキルをアップロードへ移動
オンにして利用開始
テストする
「@azure/cosmos (TypeScript/JavaScript)」を使用しています。 名前が 'Lughter'、価格が 999.99、カテゴリが 'electronics' の商品ドキュメントを作成
期待される結果:
コンテナ 'products' に ID 'prod-8a7b2c' のドキュメントが正常に作成されました。要求ユニット: 5.21 RU。
「@azure/cosmos (TypeScript/JavaScript)」を使用しています。 price < 1000 かつ category = 'electronics' の商品をクエリ
期待される結果:
条件に一致する 15 件の商品を取得しました。合計要求ユニット: 3.47 RU。結果: Laptop、Tablet、Wireless Mouse、USB Hub...
セキュリティ監査
安全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.
品質スコア
作れるもの
SaaS アプリケーションを構築するバックエンド開発者
階層パーティションキーを使用して顧客データを分離しながらクエリパフォーマンスを維持するマルチテナントデータレイヤーを実装します。
高ボリュームトランザクションを処理するデータエンジニア
適切なエラー処理により毎秒数千件のドキュメントを効率的に挿入、更新、削除するためにバルク操作を使用します。
リアルタイムアプリケーションを作成するフルスタック開発者
変更フィードプロセッサを構築し、複数のクライアントからの同時更新を処理するために楽観的同時性を実装します。
これらのプロンプトを試す
Azure Cosmos DB に新しい商品ドキュメントを挿入する TypeScript 関数を作成します。商品には id、name、price、category フィールドが必要です。認証には DefaultAzureCredential を使用し、重複ドキュメントのための適切なエラー処理を含めます。
価格範囲内の商品をクエリする TypeScript サービスメソッドを作成します。インジェクション攻撃を防ぐために名前付きパラメータを持つ SqlQuerySpec を使用します。継続トークンを含むページネーションサポートを含めます。
executeBulkOperations を使用して 1000 以上のドキュメントの配列を処理するバルクインポート関数を実装します。成功したものを続行しながら、失敗した操作とそのステータスコードをログすることで部分的失敗を処理します。
複数のユーザーが同じドキュメントを変更した場合の失更新を防ぐために ETag を使用する更新関数を作成します。ETag 前提条件が失敗した場合にクライアントが更新して再試行できるように、具体的なエラーを返します。
ベストプラクティス
- 本番環境ではアカウントキーではなく DefaultAzureCredential を使用して認証を行います
- インジェクションを防ぎ、クエリプランのキャッシュを改善するために SqlQuerySpec でパラメータ化クエリを常に使用します
- クロスパーティションクエリのオーバーヘッドを避けるため、すべてのポイント操作でパーティションキー値を指定します
回避
- 本番環境コードで環境変数やmanaged identity の代わりにアカウントキーを直接使用すること
- 大容量コンテナで WHERE 句なしで SELECT * クエリを実行すること
- 指数バックオフリトライロジックを実装する代わりに 429 レート制限エラーを無視すること