Azure Cosmos DB での無効な要求例外の診断とトラブルシューティング
適用対象: NoSQL
HTTP 状態コード 400 は、要求に無効なデータが含まれているか、必要なパラメーターが不足していることを表しています。
ID プロパティがありません
このシナリオでは、次のようなエラーが表示されるのが一般的です。
必要なプロパティ 'id; ' が不足しているため、入力内容が無効です
このエラーを示す応答は、サービスに送信されている JSON ドキュメントに、必要な ID プロパティがないことを意味します。
解決策
ドキュメントの一部として REST の仕様に従って、文字列値を持つ id
プロパティを指定すると、SDK はこのプロパティの値を自動生成しません。
パーティション キーの型が無効です
このシナリオでは、次のようなエラーが表示されるのが一般的です。
パーティション キー ... が無効です。
このエラーを示す応答は、パーティション キーの値が無効な型であることを意味します。
解決策
パーティション キーの値は、文字列または数値である必要があります。値が予期される型であることを確認してください。
パーティション キーの値を入力します
このシナリオでは、このようなエラーが発生することがよくあります。
応答の状態コードが成功を示していません: BadRequest (400); Substatus: 1001
ドキュメントから抽出された PartitionKey が、ヘッダーに指定された PartitionKey と一致しません
このエラーを示す応答は、操作を実行し、予期されるプロパティのドキュメントの本文値と一致しないパーティション キー値を渡していることを意味します。 コレクションのパーティション キーのパスが /myPartitionKey
の場合、ドキュメントには、SDK メソッドを呼び出すときにパーティション キー値として提供された値と一致しない myPartitionKey
というプロパティがあります。
解決策
ドキュメント プロパティ値に一致するパーティション キー値パラメーターを送信します。
数値パーティション キー値の精度の低下
このシナリオでは、次のようなエラーが表示されるのが一般的です。
要求されたパーティション キーがキーの範囲外です。パーティション キー値の精度が失われている可能性があります。
このエラーの応答は、Azure Cosmos DB でサポートされている値の範囲外にある数値パーティション キーを持つドキュメントに対する操作が原因である可能性があります。 数値プロパティ値の最大長については、「項目あたりの制限」を参照してください。
解決策
正確な数値が必要な場合は、パーティション キーに string
型を使用することを検討してください。
次のステップ
- Azure Cosmos DB .NET SDK 使用時の問題を診断してトラブルシューティングする。
- .NET v3 と .NET v2 のパフォーマンス ガイドラインを確認する。
- Azure Cosmos DB Java v4 SDK 使用時の問題を診断してトラブルシューティングする。
- Java v4 SDK のパフォーマンス ガイドラインを確認する。