一般的な応答コードを確認する
Azure Cosmos DB for NoSQL を使用する最も一般的な要求操作は、コンテナー ドキュメントの作成、クエリ、または管理です。 各要求からは、操作の状態に関する HTTP 状態コードが返されます。 このコードにより、操作が成功したかどうかを確認できる場合があります。 または、コードを見ると要求が失敗したことがわかり、可能性のある誤りについての分析情報が提供されます。 このセクションでは、次の種類の要求によって返される、最も一般的な HTTP 状態コードについて確認します。
- ドキュメントの作成
- ドキュメントの一覧
- ドキュメントの取得
- ドキュメントの置換
- ドキュメントにパッチを適用する
- ドキュメントの削除
- ドキュメントに対するクエリを実行する
すべての種類の操作に共通する状態コード
一部の状態コード (400、403、404 など) は、異なる種類の操作で共通して使われますが、それらの説明は若干異なり、この表には記載されていません。
| 状態コード | 名前 | 操作の種類 | 説明 |
|---|---|---|---|
| 200 | [OK] | リスト、取得、置換、パッチ、クエリ | 操作に成功しました。 |
ドキュメントの作成
"ドキュメント作成操作" は、コレクション内に新しいドキュメントを作成します。 状態コードは次のとおりです。
| 状態コード | 操作の種類 | 説明 |
|---|---|---|
| 201 | 作成済み | 操作に成功しました。 |
| 400 | 正しくない要求 | JSON の本文が無効です。 |
| 403 | 許可されていません | パーティションのストレージ上限に達したため、操作を完了できませんでした。 |
| 409 | 競合 | 新しいドキュメントに対して指定された parition key と id は、既存のドキュメントによって取得されています。 |
| 413 | エンティティが大きすぎます | 要求のドキュメント サイズが、許可されているドキュメント サイズを超えています。 |
ReadFeed を使用してコレクション内のドキュメントを一覧表示する
ReadFeed を使用すると、コレクション内のすべてのドキュメントを取得したり、それらのドキュメントに対する増分変更だけを取得したりすることができます。 状態コードは次のとおりです。
| 状態コード | 操作の種類 | 説明 |
|---|---|---|
| 400 | 正しくない要求 | x-ms-consistency-level に設定されるオーバーライドは、アカウント作成時に設定される値よりも優先されます。 たとえば、整合性レベルが Session の場合、オーバーライドを Strong や Bounded に設定することはできません。 |
ドキュメントの取得
"ドキュメント取得操作" は、そのパーティション キーとドキュメント キーによってドキュメントを取得します。 状態コードは次のとおりです。
| 状態コード | 操作の種類 | 説明 |
|---|---|---|
| 304 | 変更されていません | 要求されたドキュメントは、If-Match ヘッダーで指定された eTag 値以降に変更されていません。 サービスからは空の応答本文が返されます。 |
| 400 | 正しくない要求 | x-ms-consistency-level ヘッダーに設定されたオーバーライドがアカウントの作成時の設定より強力です。 たとえば、整合性レベルが Session の場合、オーバーライドを Strong や Bounded に設定することはできません。 |
| 404 | 見つかりません | ドキュメントはもう存在しません (つまり、ドキュメントは削除されています)。 |
ドキュメントの置換
"ドキュメント置換" 操作は、ドキュメントの内容全体を置き換えます。 状態コードは次のとおりです。
| 状態コード | 操作の種類 | 説明 |
|---|---|---|
| 400 | 正しくない要求 | JSON の本文が無効です。 中かっこや引用符の不足がないか確認してください。 |
| 404 | 見つかりません | ドキュメントはもう存在しません (つまり、ドキュメントは削除されています)。 |
| 409 | 競合 | 新しいドキュメントに対して指定された parition key と id は、既存のドキュメントによって取得されています。 |
| 413 | エンティティが大きすぎます | 要求のドキュメント サイズが、許可されているドキュメント サイズを超えています。 |
ドキュメントにパッチを適用する
"ドキュメント パッチ操作" は、1 つのドキュメント内の特定のファイルまたはプロパティに対して、パス レベルの更新を実行します。 状態コードは次のとおりです。
| 状態コード | 操作の種類 | 説明 |
|---|---|---|
| 400 | 正しくない要求 | JSON の本文が無効です。 |
| 412 | 前提条件に失敗しました | 指定された前提条件が満たされていません。 |
ドキュメントの削除
"ドキュメント削除操作" は、コレクション内の既存のドキュメントを削除します。 状態コードは次のとおりです。
| 状態コード | 操作の種類 | 説明 |
|---|---|---|
| 204 | コンテンツなし | 削除操作は成功しました。 |
| 404 | 見つかりません | ドキュメントが見つかりません。 |
ドキュメントに対するクエリを実行する
Azure Cosmos DB for NoSQL クエリを使って、コレクションのドキュメントのクエリを実行できます。 状態コードは次のとおりです。
| 状態コード | 操作の種類 | 説明 |
|---|---|---|
| 400 | 正しくない要求 | 要求は、誤った SQL 構文を使って指定されているか、または必要なヘッダーが見つかりませんでした。 |
Azure Cosmos DB 要求から返される可能性があるその他の重要な状態コード
失敗した状態コードは、例外への参照である場合もあります。 これらの状態コードのいくつかについては、次のセクションで詳しく説明します。ここでは、より一般的な状態コードについて確認します。
| 状態コード | 操作の種類 | 説明 |
|---|---|---|
| 408 | 要求タイムアウト | 操作は、割り当てられた時間内に完了しませんでした。 このコードは、クエリ内のストアド プロシージャ、トリガー、または UDF (ユーザー定義関数) が、最大実行時間内に実行を完了しなかった場合に返されます。 |
| 429 | 要求が多すぎます | コレクションが、プロビジョニングされたスループットの上限を超えました。 サーバーで指定された再試行までの期間の後に要求を再試行してください。 詳細については、要求のユニットを参照してください。 |
| 500 | 内部サーバー エラー | 予期しないサービス エラーが原因で操作が失敗しました。 サポートにお問い合わせください。 |
| 503 | サービス利用不可 | サービスが利用できなかったため、操作を完了できませんでした。 この状況は、ネットワーク接続またはサービスの可用性の問題によって発生する可能性があります。 操作を再試行しても問題ありません。 問題が解決しない場合は、サポートにお問い合わせください。 |