Amazon CloudSearch でのエラー処理 - アマゾン CloudSearch

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

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 は通常、負荷を処理するために自動的にスケーリングされます。追加の検索インスタンスのデプロイには時間がかかるため、エクスポネンシャルバックオフ再試行ポリシーを使用して、リクエスト率を一時的に下げてリクエストの失敗を最小限に抑えることをお勧めします。詳細については、「エラーの再試行とエクスポネンシャルバックオフ」を参照してください。

単一の小さな検索インスタンスに複雑な検索クエリを送信するなど、特定の使用パターンでは、自動スケーリングがトリガーされずにタイムアウトが発生することがあります。高いエラー率が繰り返し発生する場合、Amazon CloudSearch のサービスの制限リクエストフォームを介して明示的に追加容量をリクエストできます。

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