

AWS Data Pipeline は新規顧客には利用できなくなりました。の既存のお客様は、通常どおりサービスを AWS Data Pipeline 引き続き使用できます。[詳細はこちら](https://aws.amazon.com/blogs/big-data/migrate-workloads-from-aws-data-pipeline/)

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

# カスケードの失敗と再実行
<a name="dp-manage-cascade-failandrerun"></a>

AWS Data Pipeline では、依存関係が失敗した場合、またはユーザーによってキャンセルされた場合のパイプラインオブジェクトの動作を設定できます。他のパイプラインオブジェクト（コンシューマー）に確実に失敗をカスケードすることで、無限に保留状態になるのを防ぐことができます。すべてのアクティビティ、データノード、および前提条件には、`failureAndRerunMode` という名前のフィールドがあり、デフォルト値は `none` です。失敗のカスケードを有効にするには、`failureAndRerunMode` フィールドを `cascade` に設定します。

このフィールドを有効にしているときに、パイプラインオブジェクトが `WAITING_ON_DEPENDENCIES` 状態でブロックされ、保留コマンドがない状態で依存関係がエラーになった場合、カスケードの失敗が発生します。カスケードが失敗すると、以下のイベントが発生します。
+ オブジェクトで障害が発生すると、そのコンシューマーは `CASCADE_FAILED` に設定され、元のオブジェクトとコンシューマーの前提条件が `CANCELED` に設定されます。
+ 既に `FINISHED`、`FAILED`、または `CANCELED` の状態にあるオブジェクトは無視されます。

カスケードの失敗は、エラーになった元のオブジェクトに関連付けられている前提条件を除き、エラーになったオブジェクトの依存関係（上流）に対しては作用しません。カスケードの失敗による影響を受けるパイプラインオブジェクトでは、再試行や、`onFail` などの後処理がトリガーされることがあります。

カスケードの失敗による詳細な影響は、オブジェクトのタイプによって異なります。

## アクティビティ
<a name="dp-manage-cascade-activity"></a>

依存関係のいずれかがエラーになり、それがアクティビティのコンシューマーにおけるカスケードの失敗の原因となった場合、アクティビティは `CASCADE_FAILED` に変更されます。アクティビティが依存するリソースでエラーが発生した場合、アクティビティは `CANCELED` になり、そのすべてのコンシューマーは `CASCADE_FAILED` になります。

## データノードと前提条件
<a name="dp-manage-cascade-datanode"></a>

失敗したアクティビティの出力としてデータノードが設定されている場合、そのデータノードは `CASCADE_FAILED` 状態になります。データノードに関連する前提条件がある場合、データノードのエラーが前提条件に伝達され、それらの前提条件は `CANCELED` 状態になります。

## リソース
<a name="dp-manage-cascade-resources"></a>

リソースに依存するオブジェクトが `FAILED` 状態になり、リソースそのものが `WAITING_ON_DEPENDENCIES` 状態である場合、そのリソースは `FINISHED` 状態になります。

## カスケードが失敗したオブジェクトの再実行
<a name="dp-manage-cascade-rerun"></a>

デフォルトでは、アクティビティまたはデータノードを再実行すると、関連するリソースのみが再実行されます。ただし、パイプラインオブジェクトで `failureAndRerunMode` フィールドを `cascade` に設定することで、以下の条件下でターゲットオブジェクトでの再実行コマンドをすべてのコンシューマーに伝達することができます。
+ ターゲットオブジェクトのコンシューマーが `CASCADE_FAILED` 状態です。
+ ターゲットオブジェクトの依存関係に、保留中の再実行コマンドがない。
+ ターゲットオブジェクトの依存関係が、`FAILED`、`CASCADE_FAILED`、`CANCELED` のいずれの状態でもありません。

`CASCADE_FAILED` 状態のオブジェクトを再実行したが、その依存関係のいずれかが `FAILED`、`CASCADE_FAILED`、`CANCELED` のいずれかの状態である場合、再実行は失敗し、オブジェクトは `CASCADE_FAILED` の状態に戻ります。エラーになったオブジェクトを正常に再実行するには、依存関係の連鎖をさかのぼってエラーをトレースし、エラーの根本原因を特定して、そのオブジェクトを再実行する必要があります。リソースに対して再実行コマンドを発行するときは、それに依存するオブジェクトの再実行も試行することになります。

## カスケードの失敗とバックフィル
<a name="dp-manage-cascade-backfills"></a>

カスケード障害を有効にし、多くのバックフィルを作成するパイプラインがある場合、パイプラインランタイムエラーにより、有用な作業を実行せずに、リソースが迅速に連続して作成および削除される可能性があります。 AWS Data Pipeline は、パイプラインを保存するときに、この状況を警告メッセージで警告しようとします。` {{Pipeline_object_name}} has 'failureAndRerunMode' field set to 'cascade' and you are about to create a backfill with scheduleStartTime {{start_time}}. This can result in rapid creation of pipeline objects in case of failures. `これは、カスケード障害がダウンストリームアクティビティを としてすばやく設定`CASCADE_FAILED`し、不要になった EMR クラスターと EC2 リソースをシャットダウンできるためです。この状況の影響を制限するために、短時間の範囲でパイプラインをテストすることをお勧めします。