Amazon CloudSearch
開発者ガイド (API バージョン 2013-01-01)

Amazon CloudSearch でのエラー処理

このセクションでは、プログラムで Amazon CloudSearch と対話しているときに、エラーを処理する方法について説明します。Amazon CloudSearch サービスから返される特定のエラーコードの詳細については、以下を参照してください。

Amazon CloudSearch のエラーのタイプ

Amazon CloudSearch API によって返される HTTP ステータスコードは、リクエストが正常に完了したかどうか、またはリクエストの処理中にクライアントまたはサーバーでエラーが発生したかどうかを示します。

  • 2xx ステータスコードは、クライアントのリクエストが正常に処理されたことを示します。

  • 4xx ステータスコードは、クライアントのリクエストに問題があったことを示します。一般的なクライアントリクエストエラーには、無効な認証情報の提供や、必須パラメータの指定漏れがあります。4xx エラーが発生したときは、問題を解決し、適切な形式のクライアントリクエストを再送信する必要があります。

  • 5xx ステータスコードは、クライアントリクエストの処理中にサーバーでエラーが発生したことを示します。通常、サーバーエラーは一時的で、多くの場合サーバータイムアウト、スロットリング、容量制限が原因です。すべての 5xx エラーを見つけて、再試行することをお勧めします。

HTTP ステータスコードは、リクエストごとに返されます。さらに、レスポンスの本文で、追加の警告およびエラー情報が提供されます。

search レスポンス内のメッセージは、深刻度レベル、警告またはエラーコード、および検索リクエストに関する問題の説明を示します。検索サービスによって返される警告およびエラーのリストについては、「検索レスポンスのプロパティ(JSON)」または「検索レスポンスの要素(XML)」を参照してください。

documents/batch レスポンス内のエラーおよび警告は、ドキュメントデータの処理中に発生した解析および検証の問題に関する情報を提供します。詳細については、「documents/batch 応答(JSON)」または「documents/batch 応答(XML)」を参照してください。

設定サービスのレスポンスで返されるエラーは、リクエストが 4xx または 5xx ステータスコードを返した原因に関する情報を提供します。すべてのアクションに共通のエラーの詳細については、「共通エラー」を参照してください。アクション固有のエラーは、「Amazon CloudSearch の設定 API リファレンス 」の「アクション」のトピックに一覧表示されています。

Amazon CloudSearch でのリクエストの再試行

アプリケーションをスムーズに実行するには、エラーを見つけ、エラーに対応するロジックを組み込む必要があります。一般的な方法は、try ブロックまたは if-then ステートメント内にリクエストを実装することです。

すべてのサーバーエラー(5xx)を見つけて、再試行することをお勧めします。エラーはリクエストパイプライン内のどこでも生成される可能性があるため、特定のステータスコードに対する専用の処理方法だけでなく、予期しない 5xx エラーに対するフォールバックを実装する必要があります。

507 および 509 のエラーは、通常、検索サービスが過負荷になっていることを示します。これは、送信した検索リクエストのボリュームや複雑さが原因である可能性があります。Amazon CloudSearch は、通常、負荷を処理するために自動的にスケーリングします。追加検索インスタンスのデプロイには時間がかかるため、エクスポネンシャルパックオフ再試行ポリシーを使用して、一時的にリクエストレートを低減し、リクエストの失敗を最小限に抑えることをお勧めします。詳細については、「エラーの再試行とエクスポネンシャルパックオフ」を参照してください。

複雑な検索クエリを 1 つの小さな検索インスタンスに送信するなど、特定の使用パターンは、自動スケーリングをトリガーすることなくタイムアウトする可能性があります。高いエラー率が頻繁に見られる場合、Amazon CloudSearch Service Limit Request フォームを使用して追加容量を明示的にリクエストできます。

通常、クライアントエラー (4xx) は、問題を解決するためにリクエストを修正する必要があることを示します—単純に同じリクエストを再試行するだけでは、ほとんどの場合同じエラーで終わります。構成サービスから返された 409 エラーは、リソースの限界に達したために、リクエストが拒否されたことを示します。詳細については、「制限」を参照してください。