スキップしてコンテンツを表示

Stepfunctionsの実行する際、他のStepfunctionsの当日の完了を待ってから実行できるか

0

Stepfunctions(A)の実行する際、他のStatemachine(B)が未実行だったとします。 Bの当日の実行完了を待ってから、Aの実行を開始するような処理は可能でしょうか。

BのStatemachine名は特定できている前提です。 またBは日次で実行され、Aは毎日実行されるとは限りません。

質問済み 1年前98ビュー
2回答
0

はい、Step Functions (A) の実行時に他の State Machine (B) の当日の完了を待ってから実行を開始することは可能です。これを実現するには、以下のような方法が考えられます:

  1. Step Functions (A) の最初のステートとして、State Machine (B) の実行状態をチェックするタスクを設定します。

  2. このタスクでは、AWS Step Functions API の DescribeExecution を使用して、State Machine (B) の最新の実行状態を確認します。

  3. 実行状態に基づいて、以下のロジックを実装します:

    • B が当日まだ実行されていない場合:一定時間待機した後、再度状態をチェックします。
    • B が実行中の場合:完了するまで待機します。
    • B が当日既に完了している場合:A の本来の処理を開始します。
  4. 待機処理には Step Functions の Wait ステートを使用し、再チェックには Choice ステートを使用してループを作成できます。

  5. B の実行状態を確認する際は、最新の実行の開始時刻を確認し、それが当日のものであることを確認します。

この方法により、Step Functions (A) は State Machine (B) の当日の実行完了を待ってから処理を開始することができます。ただし、長時間の待機が必要な場合は、Step Functions の実行時間制限(最大1年間)に注意が必要です。また、頻繁なポーリングによる API 呼び出しの制限にも注意してください。

なお、この方法は B が毎日実行される前提で機能します。B が実行されない日がある場合、A の実行が無期限に待機する可能性があるため、タイムアウト処理や代替ロジックの実装も検討する必要があります。
Sources
Troubleshooting issues in Step Functions - AWS Step Functions
What is Step Functions? - AWS Step Functions
Developing workflows with Step Functions - AWS Step Functions

回答済み 1年前
0

Step Functions (A) の最初のステートとして、State Machine (B) の実行状態をチェックするタスクを設定します。

StateMachine(B)の最新の実行状態(executionArn)を取得する方法はありますか?

回答済み 1年前

ログインしていません。 ログイン 回答を投稿する。

優れた回答とは、質問に明確に答え、建設的なフィードバックを提供し、質問者の専門分野におけるスキルの向上を促すものです。

関連するコンテンツ