翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
redrive を使用して、過去 14 日間に正常に完了しなかった Standard ワークフローの実行を再開できます。これには、失敗した、中止された、またはタイムアウトした実行が含まれます。
redrive 実行時、Step Functions は失敗したステップから失敗した実行を続行し、同じ入力を使用します。 は成功したステップの結果とredrive実行履歴Step Functionsを保持しますが、実行時に再実行されることはありません。例えば、ワークフローに 2 つの状態、1 つは Pass ワークフロー状態 状態、もう 1 つはそれに続く Task ワークフロー状態 状態です ワークフローの実行が Task 状態で失敗し、実行を redrive すると、実行のスケジュールが再設定され、Task 状態が再実行されます。
再処理された実行では、元の実行試行に使用されたのと同じステートマシン定義と実行 ARN が使用されます。元の実行試行がバージョン、エイリアス、あるいはその両方に関連付けられていた場合、redriven された実行は同じバージョン、エイリアス、または両方に関連付けられます。エイリアスを別のバージョンを指すように更新しても、再処理された実行には元の実行試行に関連付けられたバージョンが使用され続けます。再処理された実行では同じステートマシン定義が使用されるため、ステートマシン定義を更新した場合は新しい実行を開始する必要があります。
実行を再処理すると、ステートマシンレベルのタイムアウト (定義されている場合) は 0 にリセットされます。ステートマシンレベルのタイムアウトの詳細については、「TimeoutSeconds
」を参照してください。
実行の再処理は状態遷移と見なされます。状態遷移が課金に及ぼす影響については、Step Functions コスト
失敗した実行の再処理対象
最初に試みた実行が以下の条件を満たしていれば、実行を再処理することができます。
-
2023 年 11 月 15 日以降に実行を開始しました。この日付より前に開始した実行は再処理の対象外です。
-
実行ステータスは
SUCCEEDED
ではありません。 -
ワークフローの実行は 14 日間の再処理可能期間を超えていません。再処理可能期間とは、特定の実行を再処理できる時間を指します。この期間は、ステートマシンが実行を完了した日から始まります。
-
ワークフローの実行は、1 年間の最大オープン時間を超えていません。ステートマシン実行クォータの詳細については、「ステートマシンの実行に関連するクォータ」を参照してください。
-
実行イベント履歴数は 24,999 件未満です。再処理された実行によって、イベント履歴が既存のイベント履歴に追加されます。
ExecutionRedriven
履歴イベントと少なくとも 1 つのその他の履歴イベントに対応するため、ワークフロー実行に含まれるイベントが 24,999 件未満であることを確認してください。
個々の状態の再処理動作
ワークフローで失敗した状態によって、失敗したすべての状態の再処理動作は異なります。次の表では、すべての状態に対する再処理動作について説明します。
状態名 | 再処理実行動作 |
---|---|
Pass ワークフロー状態 |
前のステップが失敗したり、ステートマシンがタイムアウトしたりすると、パス状態は終了し、再処理では実行されません。 |
Task ワークフロー状態 |
タスク状態をスケジュールして再開します。 タスク状態を再実行する実行を再処理すると、その状態の (定義されている場合) |
Choice ワークフローの状態 | Choice ステートルールを再評価します。 |
Wait ワークフロー状態 |
状態が過去のタイムスタンプを参照する |
Succeed ワークフロー状態 |
Succeed ステートになるステートマシン実行を再処理しません。 |
ワークフロー状態に失敗する |
再び Fail ステートになり、再び失敗します。 |
Parallel ワークフローの状態 |
失敗または中止されたブランチのみを再スケジュールし、再処理します。
|
インラインマップステート |
スケジュールを変更し、失敗または中止されたイテレーションのみを再スケジュールし、再処理します。
|
分散マップ状態 |
マップ実行で失敗した子ワークフローの実行を再処理します。詳細については、「Step Functions で実行される Redriving マップ実行」を参照してください。
|
実行を再処理する IAM アクセス許可
Step Functions には、実行を再処理するための適切なアクセス許可が必要です。次の IAM ポリシー例では、実行を再処理するためにステートマシンに必要な最小限の権限を付与します。イタリック体
のテキストを、リソース固有の情報に必ず置き換えてください。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "states:RedriveExecution" ], "Resource": "arn:aws:states:
us-east-2
:123456789012
:execution:myStateMachine
:*" } ] }
マップ実行の再処理に必要なアクセス許可の例については、「分散マップの IAM redriving ポリシーの例」を参照してください。
コンソールでの実行の再処理
Step Functions コンソールから対象となる redrive の実行を再処理できます。
例えば、ステートマシンを実行し、並列状態が実行に失敗するとします。
次の図は、並列状態内の Do 二乗数 という名前のLambda呼び出しステップが戻り、失敗したことを示しています。このため、[Parallel] ステートも失敗しました。実行が進行中または開始されていないブランチは停止し、ステートマシンの実行は失敗します。

コンソールから実行を再処理するには
-
Step Functions コンソール
を開き、実行に失敗した既存のステートマシンを選択します。 -
ステートマシンの詳細ページの [実行] で、失敗した実行インスタンスを選択します。
-
[Redrive] を選択します。
-
[Redrive] ダイアログボックスで [Redrive 実行] を選択します。
ヒント
失敗した実行の[実行の詳細] ページを開いている場合は、次のいずれかを実行して、実行を再処理します。
-
[復旧] を選択し、[障害からのリドライブ] を選択します。
-
[アクション]、[Redrive] の順に選択します。
再処理は、同じステートマシン定義と ARN を使用していることに注意してください。最初の実行試行で失敗したステップから実行を継続します。この例では、それは、[Parallel] ステート内の [平方数を実行する] ステップと [3 秒待機] ブランチです。[Parallel] ステートで失敗したこれらのステップの実行を再開した後は、[完了] ステップまで実行を継続します。
-
-
実行を選択して、[実行の詳細] ページを開きます。
このページでは、redriven 実行の結果を表示できます。例えば、実行の概要 セクションには、実行が再処理された回数を表す [リドライブ回数] が表示されます。[イベント] セクションでは、元の実行試行のイベントに追加された再処理関連の実行イベントを確認できます。例えば、
ExecutionRedriven
イベントです。
API を使用した実行の再処理
RedriveExecution API を使用して対象の実行をredrive できます。この API は、標準ワークフローの実行に失敗した場合に、失敗、中止、またはタイムアウトになったステップから再開します。
AWS Command Line Interface (AWS CLI) で、次のコマンドを実行してステートマシンの実行redriveが失敗します。イタリック体
のテキストを、リソース固有の情報に必ず置き換えてください。
aws stepfunctions redrive-execution --execution-arn arn:aws:states:us-east-2:
123456789012
:execution:myStateMachine
:foo
再処理された実行内容を調べる
再処理された実行内容はコンソールで調べることも、GetExecutionHistory および DescribeExecution という API を使って調べることもできます。
コンソールで再処理された実行内容を調べる
-
Step Functions コンソール
を開き、実行を再処理した既存のステートマシンを選択します。 -
[実行の詳細] ページを開きます。
このページでは、redriven 実行の結果を表示できます。例えば、実行の概要 セクションには、実行が再処理された回数を表す [リドライブ回数] が表示されます。[イベント] セクションでは、元の実行試行のイベントに追加された再処理関連の実行イベントを確認できます。例えば、
ExecutionRedriven
イベントです。
API を使用して再処理された実行内容を調べる
ステートマシンの実行を再処理した、次の API のいずれかを使用して再処理された実行に関する詳細を表示できます。イタリック体
のテキストを、リソース固有の情報に必ず置き換えてください。
-
GetExecutionHistory – イベントのリストとして指定した実行の履歴を返します。この API は、可能であれば、実行の再処理試行に関する詳細も返します。
で AWS CLI、次のコマンドを実行します。
aws stepfunctions get-execution-history --execution-arn arn:aws:states:us-east-2:
123456789012
:execution:myStateMachine
:foo
-
DescribeExecution - ステートマシンの実行に関する情報を提供します。これには、実行に関連するステートマシン、実行の入出力、再処理実行の詳細 (ある場合)、関連する実行メタデータなどがあります。
で AWS CLI、次のコマンドを実行します。
aws stepfunctions describe-execution --execution-arn arn:aws:states:us-east-2:
123456789012
:execution:myStateMachine
:foo
再処理された実行の再試行動作
再試行を定義した、Task ワークフロー状態、Parallel ワークフローの状態、または インラインマップステートを redriven で再実行すると、redrive での再試行回数が最大になるように、これらのステートの再試行回数は 0 にリセットされます。redriven 実行では、コンソールを使用してこれらのステートでの再試行を個別に追跡できます。
コンソールで個々の再試行回数を調べるには
-
Step Functions コンソール
の実行の詳細ページで、再処理の再試行されたステートを選択します。 -
[再試行とリドライブ] タブを選択します。
-
各再試行の横にある矢印アイコンを選択して、詳細を表示します。再試行が成功すると、ドロップダウンボックスに表示される [出力] に結果が表示されます。
以下のイメージは、元の実行試行時とその実行の再処理時のステートに対して実行された再試行の例を示しています。この図では、元の試行と実行の再処理試行で 3 回の再試行が行われています。4 回目の再処理試行で成功し、16 という出力が返されます。
