Apigee Integration では、統合のテスト時と公開時、または統合の実行中にエラーが発生することがあります。これらのエラーは、クライアント側とサーバー側のさまざまな問題が原因で発生する可能性があり、次のように大きく分類されます。
- 永続的なエラー: 認証の失敗、データ検証エラーなどのクライアント側のエラーはすべて、永続的なエラーと見なされます。永続的なエラーの場合、タスクが永続的に失敗します。
- 一時的なエラー: HTTP 503(サービスを利用できない)、HTTP 400(不正なリクエスト)といったサーバー側のエラーはすべて、一時的なエラーと見なされます。一時的なエラーでは、一時的なタスクの障害が発生します。
エラー メッセージは、次の場所に表示されます。
- 実行ログページ: 統合の実行中に発生したエラーが表示されます。統合が実行されるたびに個別のログエントリが作成されます。実行ログページの詳細については、実行ログをご覧ください。
- 統合エディタページ: 統合を公開したときに発生したエラーが表示されます。エラーは統合エディタページの下部に表示されます。統合エディタページの詳細については、統合エディタをご覧ください。
発生する可能性のあるエラーコードのリストについては、エラーコードをご覧ください。
エラー処理メソッド
Apigee Integration には、統合の作成、テスト、公開、実行時に発生したエラーに対応して復旧するための複数のエラー処理方法が用意されています。エラー処理方法は、インテグレーション実行の同期モードと非同期モードの両方に使用できます。
-
同期実行: 同期モードでは、インテグレーションの実行後すぐにインテグレーションの実行結果がわかります。同期モードは、インテグレーションの実行直後に実行結果を必要とする場合に便利です。トリガーは、次のような同期モードでインテグレーションを実行します。
- インテグレーションをテストまたは公開する
projects.locations.integrations.execute
API を呼び出す- 同期モードでサブ インテグレーションからインテグレーションを呼び出す
-
非同期実行: 非同期実行では、ファイア アンド フォーゲット モデルが使用されます。非同期モードは、インテグレーションの実行に長時間かかる可能性がある場合や、インテグレーションの実行直後に実行結果を必要としない場合に便利です。非同期モードでインテグレーションを実行するトリガーは次のとおりです。
- 同期ではないすべての実行は、非同期モードで実行されます。一般的な非同期モードには次のようなものがあります(ただし、これらに限定されません)。
- 最初の実行が同期モードであっても、一時停止タスクまたは承認タスクから再開された実行は非同期モードです。
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 | レスポンスのサイズが大きすぎます。 |