Application Integration でサポートされているコネクタをご覧ください。
タスクのエラー処理方法
タスクのエラー処理方法では、一時的なエラーによってタスクが失敗した場合のアクションを指定します。
エラー処理方法を構成する
タスクのエラー処理方法を構成する手順は次のとおりです。
- 統合エディタで既存のタスクをクリックします。タスク構成ペインが表示されます。
- タスク構成ペインで、[エラー処理] セクションを開きます。次の図は、[エラー処理] セクションを示しています。
[エラー処理] セクションで、次の手順を行います。
- 新しい障害ポリシーを追加するには、[+ 障害ポリシーを追加] をクリックします。複数の条件付き障害ポリシーが構成されている場合は、順番にチェックされ、一致します。
- [再試行手段] フィールドで、使用するエラー処理手段を選択します。手段の一覧については、再試行手段をご覧ください。
- [再試行条件] フィールドに、このエラー戦略を実行するためにエラーと一致する必要がある条件を入力します。たとえば、Call REST Endpoint タスクで、エラーコードが
404
と一致する場合にエラー戦略を実行するには、次のように入力します。 これらの条件を追加する方法については、再試行条件をご覧ください。$`ErrorInfo.code`$ = 404
- [デフォルトのエラー ポリシー] セクションで、条件付き障害ポリシーが一致しない場合、適用する必要があるデフォルトのポリシーを追加します。デフォルトの障害ポリシーは省略可能です。
- [エラー キャッチャー] セクションで、統合のエラー キャッチャーを追加します。
- 新しい障害ポリシーを追加するには、[+ 障害ポリシーを追加] をクリックします。複数の条件付き障害ポリシーが構成されている場合は、順番にチェックされ、一致します。
エラーコードとエラー処理については、エラー処理をご覧ください。
再試行手段
次の表は、タスクに使用できるさまざまなエラー処理方法を示しています。
方法の種類 | 説明 |
---|---|
致命的 | インテグレーション全体の実行を停止し、実行ステータスを失敗としてマークします。 |
無視 | タスクの失敗を無視します。インテグレーションでは、失敗したタスクが成功したものとして、次のタスクの実行を継続します。 |
なし | タスクの実行を停止し、インテグレーション ステータスを失敗としてマークします。最後のタスク(リーフタスク)への代替パスが存在する場合は、代替パスのタスクが実行されます。代替パスのすべてのタスクが正常に実行されると、インテグレーション ステータスは成功としてマークされます。 |
バックオフでインテグレーションを再開 | 最初のタスクからインテグレーション全体を実行します。ただし、タスクは再度失敗することがあります。失敗の繰り返しを回避するには、[再試行間隔](秒)フィールドに再起動までの時間間隔、[最大再試行回数] フィールドに許可される再起動の試行回数を指定します。 |
指数バックオフでタスクを再試行 | 失敗したタスクからインテグレーションを実行します。再試行時にタスクが失敗した場合、各再試行の間隔が 2 乗されます。バックオフ時間に 1 ~ 5 秒の遅延が加算されます。
たとえば、指定された再試行間隔が 3 秒であれば、最初の再試行は 3 秒後に実行されます。2 回目の再試行は 9 秒後、3 回目の再試行は 81 秒後になります。このプロセスは、再試行の最大回数に到達するか、タスクが成功するまで継続します。 |
固定間隔でタスクを再試行 | 失敗したタスクからインテグレーションを実行します。再試行時にタスクが失敗した場合、各再試行の間隔は一定のままです。 たとえば、指定された再試行間隔が 3 秒であれば、3 秒ごとに再試行が行われます。このプロセスは、再試行の最大回数に到達するか、タスクが成功するまで継続します。 |
線形バックオフでタスクを再試行 | 失敗したタスクからインテグレーションを実行します。再試行時にタスクが失敗した場合、各再試行の間隔が線形に増加します。バックオフ時間に 1 ~ 5 秒の遅延が加算されます。
たとえば、指定された再試行間隔が 3 秒であれば、最初の再試行は 3 秒後に実行されます。2 回目の再試行は 6 秒後、3 回目の再試行は 9 秒後になります。このプロセスは、再試行の最大回数に到達するか、タスクが成功するまで継続します。 |
バックオフの再試行
デフォルトの同時実行の上限は、プロジェクトとリージョンごとに 50 回に設定されています。失敗した実行は、指数バックオフのアルゴリズムを使用してキューに入り、再試行されます。このアルゴリズムは、再試行の間の待ち時間を徐々に増やしながら最大 10 回まで繰り返します。次に例を示します。
- インテグレーションを実行します。
- リクエストが失敗した場合は、10 分待ってからリクエストを再試行します。
- リクエストが失敗した場合は、20 分待ってからリクエストを再試行します。
- リクエストが失敗した場合は、40 分待ってからリクエストを再試行します。
- この処理を最大バックオフ再試行回数の 10 回まで繰り返します。
再試行条件
再試行条件には、エラー処理方法を実行するために一致する必要がある条件を指定します。次の表に、再試行条件で使用できるサポートされている演算子と関数を示します。
サポートされている演算子
次の表に、再試行条件で利用可能なサポートされている演算子を示します。
演算子 | 説明 | 例 |
= | 2 つの値の等価性を確認します。 | $var$ = "value" |
!= | 2 つの値の不等価性を確認します。 | $var$ != "value" |
< | 値がもう一方の値より小さいかどうかを確認します。 | 5 < 10 |
<= | 値がもう一方の値以下かどうかを確認します。 | $var$ <= 5 |
> | 値がもう一方の値より大きいかどうかを確認します。 | 1 > 0 |
>= | 値がもう一方の値以上であるかどうかを確認します。 | $var$ >= 0 |
: | 文字列に特定の部分文字列が含まれているかどうか、またはリストに特定のプリミティブ値が含まれているかどうかを確認します。 |
|
AND | 2 つの式を確認し、両方の式が true と評価された場合に true を返します。 | $a$ > $b$ AND $b$ < $c$ |
OR | 2 つの式を確認し、いずれかの式が true と評価された場合に true を返します。 | $a$ > $b$ OR $b$ < $c$ |
NOT | 否定演算子。式の結果を反転します。 | NOT($var$ = "value") |
サポートされる関数
次の表では、再試行条件で利用可能なサポートされている関数について説明します。
関数 | 説明 |
exists(VARIABLE)
|
指定された変数が存在するかどうかを確認します。 |
does_not_exist(VARIABLE)
|
指定された変数が存在しないかどうかを確認します。 |
is_empty(VARIABLE)
|
指定された変数がリストかつ空かどうかを確認します。JSON 配列を除く配列変数型をサポートします。 |
is_not_empty(VARIABLE)
|
指定された変数がリストかつ空ではないかどうかを確認します。JSON 配列を除く配列変数型をサポートします。 |