エラーとエラー処理

Apigee Integration では、統合のテスト時と公開時、または統合の実行中にエラーが発生することがあります。これらのエラーは、クライアント側とサーバー側のさまざまな問題が原因で発生する可能性があり、次のように大きく分類されます。

  • 永続的なエラー: 認証の失敗、データ検証エラーなどのクライアント側のエラーはすべて、永続的なエラーと見なされます。永続的なエラーの場合、タスクが永続的に失敗します。
  • 一時的なエラー: HTTP 503(サービスを利用できない)、HTTP 400(不正なリクエスト)といったサーバー側のエラーはすべて、一時的なエラーと見なされます。一時的なエラーでは、一時的なタスクの障害が発生します。

エラー メッセージは、次の場所に表示されます。

  • 実行ログページ: 統合の実行中に発生したエラーが表示されます。統合が実行されるたびに個別のログエントリが作成されます。実行ログページの詳細については、実行ログをご覧ください。
  • 統合エディタページ: 統合を公開したときに発生したエラーが表示されます。エラーは統合エディタページの下部に表示されます。統合エディタページの詳細については、統合エディタをご覧ください。

発生する可能性のあるエラーコードのリストについては、エラーコードをご覧ください。

エラー処理メソッド

Apigee Integration には、統合の作成、テスト、公開、実行時に発生したエラーに対応して復旧するための複数のエラー処理方法が用意されています。エラー処理方法は、インテグレーション実行の同期モードと非同期モードの両方に使用できます。

  • 同期実行: 同期モードでは、インテグレーションの実行後すぐにインテグレーションの実行結果がわかります。同期モードは、インテグレーションの実行直後に実行結果を必要とする場合に便利です。トリガーは、次のような同期モードでインテグレーションを実行します。
  • 非同期実行: 非同期実行では、ファイア アンド フォーゲット モデルが使用されます。非同期モードは、インテグレーションの実行に長時間かかる可能性がある場合や、インテグレーションの実行直後に実行結果を必要としない場合に便利です。非同期モードでインテグレーションを実行するトリガーは次のとおりです。

Apigee Integration では、統合で発生したエラーをスロー、キャッチ、再試行、カスタマイズするために、次のエラー処理方法がサポートされています。

エラーコード

次の表に、発生する可能性のあるエラーと、エラーに対する原因を示します。Apigee Integration では、google.rpc.Code で定義されている正規のエラーコードを使用します。

Apigee Integration のエラーとさまざまなエラー処理方法については、エラーとエラー処理をご覧ください。

標準の例外タイプ 正規コード HTTP コード 説明
FailedPreconditionException FAILED_PRECONDITION 400 現在のシステム状態ではリクエストを実行できません。
BadRequestException INVALID_ARGUMENT 400 クライアントが無効な引数を指定しました。詳しくは、エラー メッセージとエラーの詳細を確認してください。
UnauthenticatedException UNAUTHENTICATED 401 OAuth トークンがない、もしくは無効、期限切れのためにリクエストが認証されませんでした。
ForbiddenException PERMISSION_DENIED 403 クライアントに十分な権限がありません。これは、OAuth トークンに正しいスコープが割り当てられていないか、クライアントに必要な権限がないか、または API が有効になっていない場合に発生することがあります。
NotFoundException NOT_FOUND 404 指定されたリソースが見つかりません。
AlreadyExistsException ALREADY_EXISTS 409 クライアントが作成しようとしたリソースはすでに存在します。
InternalError INTERNAL 500 内部サーバーエラーが発生しました。通常、サーバーのバグです。これは、タスクやトリガーが正しく構成されていない場合に発生します。
UnimplementedException UNIMPLEMENTED 501 API メソッドはサーバーによって実装されていません。
ServiceUnavailableException UNAVAILABLE 503 サービス利用不可。通常、サーバーがダウンしています。
AbortedException ABORTED 409 レスポンスのサイズが大きすぎます。