Azure Cosmos DB の HTTP 状態コード

この記事では、REST 操作によって返される HTTP 状態コードについて説明します。

コード 説明
200 OK 次のいずれかの REST 操作が成功しました。

- GET リソースに対して。
- PUT リソースに対して。
- POST リソースに対して。
- POST ストアドプロシージャを実行するストアドプロシージャリソース。
201 Created リソースを作成するための POST 操作が成功しました。
204コンテンツなし DELETE 操作は成功しました。
400無効な要求 要求本文の JSON、SQL、または JavaScript が正しくありません。

さらに、400 はリソースの必須プロパティが存在しないか、リソースの POST または PUT の本文に設定されていないときにも返されます。

400 は、ある GET 操作の一貫性のあるレベルがアカウントに設定されている GET 操作のより強力な一貫性によりオーバーライドされたときにも返されます。

400は、--documentdb-partitionkey を必要とする要求に含まれていない場合にも返されます。
401 Unauthorized 401は、 Authorization 要求されたリソースに対してヘッダーが無効な場合に返されます。
403 Forbidden 認証トークンの有効期限が切れています。

403 POST リソースクォータに達したときにリソースを作成する操作中にも、コードが返されます。 このシナリオの例として、プロビジョニングされた記憶域に到達したコレクションにドキュメントを追加しようとした場合があります。

また、ストアドプロシージャ、トリガー、または UDF のリソース使用率が高く、実行がブロックされている場合にも、403を返すことができます。

403 Forbidden エラーは、Azure Cosmos DB アカウントで構成されたファイアウォール規則に要求がブロックされている場合に返されます。 許可リストに含まれないマシンからのすべての要求には、403 応答が返されます。

403.3 –この状態コードは、手動フェールオーバー操作中の書き込み要求に対して返されます。 この状態コードは、書き込み要求を新しい書き込みリージョンに転送するために、ドライバーによってリダイレクトコードとして使用されます。 Direct REST クライアントは、DatabaseAccount で GET を実行して現在の書き込みリージョンを特定し、書き込み要求をそのエンドポイントに転送する必要があります。
404 見つかりません もう存在していないリソースを操作しようとしています。 たとえば、リソースは既に削除されている可能性があります。
408 要求タイムアウト 操作は、割り当てられた時間内に完了しませんでした。 このコードは、ストアドプロシージャ、トリガー、または UDF (クエリ内) が最大実行時間内に実行を完了しない場合に返されます。
409 Conflict PUT または POST 操作で指定されたリソースの ID が、既存のリソースで使用されています。 この問題を解決するには、リソースの別の ID を使用します。 パーティション分割されたコレクションの場合、ID は、同じパーティションキー値を持つすべてのドキュメント内で一意である必要があります。
412前提条件のエラー 操作で、サーバーで利用できるバージョンとは異なる eTag が指定されました。つまり、オプティミスティック同時実行制御エラーです。 リソースの最新バージョンを読み取り、要求の eTag を更新した後、要求を再試行してください。
413エンティティが大きすぎます 要求のドキュメント サイズが要求の許容ドキュメント サイズを超えています。 許容されるドキュメントの最大サイズは 2 MB です。
423ロック 別のスケール操作が進行中のため、スループットのスケール操作を実行できません。
424失敗した依存関係 TransactionalBatch 操作のトランザクションスコープ内でドキュメント操作が失敗した場合、バッチ内の他のすべての操作は、失敗した依存関係と見なされます。 この状態コードは、同じトランザクションスコープ内で別のエラーが発生したため、現在の操作が失敗したと見なされたことを示します。
429要求が多すぎます コレクションが、プロビジョニングされたスループットの上限を超過しました。 サーバーで指定された再試行までの期間の後に要求を再試行してください。 詳細については、「 要求ユニット」を参照してください。
449での再試行 操作で一時的なエラーが発生しました。 このコードは、書き込み操作でのみ発生します。 操作を再試行するのは安全です。
500 Internal Server Error 予期しないサービス エラーのため、操作に失敗しました。 サポートにお問い合せください。 「 Azure サポートに関する問題の提出」を参照してください。
503 Service Unavailable サービスを使用できなかったため、操作を完了できませんでした。 この状況は、ネットワーク接続またはサービスの可用性の問題が原因で発生する可能性があります。 操作を再試行するのは安全です。 問題が解決しない場合は、サポートにお問い合わせください。

HTTP 副状態コード

Azure Cosmos DB で Customer-Managed キー (CMK) を使用しているときにエラーが発生した場合、Azure Cosmos DB は、応答で HTTP 副状態コードと共にエラーの詳細を返します。 この副状態コードを使用して、問題の根本原因をデバッグできます。 現在 Azure Cosmos DB では、次の副状態コードがサポートされています。

サーバー側の問題の副状態コード

次の副状態コードは、サーバー側の問題の Azure Cosmos DB でサポートされています。

副状態コード 説明
4000 (Azure AD トークンを取得/アクセスできませんでした) このエラーは、Azure Cosmos DB が Azure Active Directory (Azure AD) アクセストークンを取得できない場合に発生します。 このトークンは、Azure Cosmos DB が Key Vault にアクセスするために必要です。 このエラーは、ネットワークの問題またはデータセンターの問題が原因で発生する可能性があり、ユーザーがアクションを実行できるものではありません。 Azure Cosmos DB チームに連絡して問題を解決するための サポート要求 を作成します。
4001 (Azure AD サービスは使用できません) このエラーは、Azure AD サービスが停止しているか、問題がある場合に発生します。 Azure の停止の ダッシュボード を確認して、既存の障害が発生していないかどうかを確認できます。 これらの停止は通常、数時間以内に解決されます。 Azure AD チームに連絡して、発生している問題を通知することをお勧めします。 Azure AD チームが問題がないことを検出した場合は、解決のために Azure Cosmos DB チームに連絡するための サポート要求 を作成します。
4004 (Key Vault サービスは使用できません) このエラーは、Azure Cosmos DB が Key Vault にアクセスしようとしても、サービスが利用できない場合に発生します。 これは、ネットワークの問題が Key Vault になるか、サービス自体が停止している可能性があります。 Azure の停止の ダッシュボード を確認して、既存の障害が発生していないかどうかを確認できます。 これらの停止は通常、数時間以内に解決されます。 Key Vault チームに連絡して、発生している問題を通知することをお勧めします。 Key Vault チームが問題がないことを検出した場合は、解決のために Azure Cosmos DB チームに連絡するための サポート要求 を作成します。
4007 (内部サーバーエラー) これは内部サーバーエラーであり、入力バイトが base64 形式ではない場合に発生します。
4008 (Key Vault 内部サービスエラー) このエラーは、Azure Cosmos DB が Key Vault にアクセスできない場合に発生します。 ネットワークに問題があるか、Key Vault サービス自体が停止している可能性があります。 Azure の停止の ダッシュボード を確認して、既存の障害が発生していないかどうかを確認できます。 これらの停止は通常、数時間以内に解決されます。 Key Vault チームに連絡して、発生している問題を通知することをお勧めします。 Key Vault チームが問題がないことを検出した場合は、Azure Cosmos DB チームに連絡して解決してください。
1013 (コレクションの作成操作が進行中です) コレクションの作成時にタイムアウト例外が発生した場合は、コレクションが正常に作成されたかどうかを確認する読み取り操作を実行します。 この読み取り操作では、コレクションの作成操作が成功するまで例外がスローされます。 読み取り操作で、ステータスコード404、およびサブステータスコード1013の例外がスローされた場合は、コレクションの作成操作がまだ進行中であることを意味します。 200または201状態コードを取得するまで、読み取り操作を再試行してください。これらのコードにより、コレクションが正常に作成されたことがわかります。

エンドユーザーの問題の副状態コード

次の副状態コードは、エンドユーザーによって発生する問題の Azure Cosmos DB でサポートされています。

副状態コード 説明
4002 (Key Vault が Azure AD にアクセス許可を付与していないか、キーが無効になっています) この問題は、Key Vault アクセスポリシーから Azure Cosmos DB id を削除した場合、またはキーを無効にした場合に発生します。 この問題は、通常、エンドユーザーによって発生します。 このエラーが発生した場合は、Azure Cosmos DB が Key Vault にアクセスできること、およびキーが有効になっていることを確認してください。
4003 (キーが見つかりません) この問題は、キーが Key Vault から削除された場合に発生します。 この問題は、通常、エンドユーザーによって発生します。 お客様が管理するキーで Azure Cosmos DB を使用するための前提条件の1つとして、Key Vault で論理的な削除と削除の保護が有効になっていることが挙げられます。 これは、削除されたキーを回復し、Azure Cosmos DB へのアクセスを復元できることを意味します。
4005 (キーをラップまたはラップ解除できません) このエラーは、Key Vault がキーをラップまたはラップ解除できない場合に発生します。 この問題は、通常、エンドユーザーによって発生します。 このエラーの考えられる原因の1つは、キーをローテーションしたため、Key Vault が最新のキーを使用して暗号化された blob をデコードできなかったことです。 このエラーを解決するには、最近無効にしたキーを有効にします。これは約1時間で解決されます。 2時間以上経過しても問題が解決されない場合は、問題を Azure Cosmos DB に渡します。
4006 (キー URL が無効です) このエラーは、Key Vault の URL にキーのバージョンを含めた場合に、プロビジョニング中に発生します。 このエラーは、多くの場合、エンドユーザーによって発生します。 このエラーを解決するには、バージョンを削除して、もう一度やり直してください。 たとえば、という形式で URL を使用した場合は、次の https://<KeyVaultName>.vault.azure.net/keys/<KeyName>/<KeyVersion> ように更新します。 https://<KeyVaultName>.vault.azure.net/keys/<KeyName>/
4009 (Key Vault DNS 名を解決できません) このエラーは、Key Vault DNS 名を解決できなかった場合に発生します。これは、間違った Key Vault 名を使用したためです。 このエラーは、エンドユーザーによって発生します。 この問題を解決するには、Key Vault 名を修正して、もう一度やり直してください。

参照