Step Functions で Task 状態からワークフロー実行を開始する - AWS Step Functions

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

Step Functions で Task 状態からワークフロー実行を開始する

AWS Step Functions は、ステートマシンTaskの状態から直接ワークフロー実行を開始できます。これにより、ワークフローを小さなステートマシンに分割し、これらの他のステートマシンの実行を開始できます。これらの新しいワークフロー実行を開始することで、以下のことが可能になります。

  • 高レベルのワークフローを、低レベルのタスク固有のワークフローから分離する。

  • 別のステートマシンを複数回呼び出すことによって、要素が繰り返されるのを回避する。

  • モジュール式の再利用可能なワークフローのライブラリを作成して、開発を迅速化する。

  • 複雑さを軽減し、ステートマシンの編集とトラブルシューティングを容易にする。

Step Functions は、独自の API を統合サービスとして呼び出して、これらのワークフロー実行をスタートできます。Task 状態から StartExecution API アクションを呼び出し、必要なパラメータを渡すだけです。サービス統合パターンのいずれかを使用する Step Functions API を呼び出すことができます。

ヒント

ネストされたワークフローの例をデプロイするには、「 AWS Step Functions ワークショップ」の「コストの最適化」を参照してください。

ステートマシンの新しい実行を開始するには、次の例のような Task 状態を使用します。

{ "Type":"Task", "Resource":"arn:aws:states:::states:startExecution", "Parameters":{ "StateMachineArn":"arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld", "Input":{ "Comment":"Hello world!" }, }, "Retry":[ { "ErrorEquals":[ "StepFunctions.ExecutionLimitExceeded" ] } ], "End":true }

この Task 状態は、HelloWorld ステートマシンの新しい実行を開始し、JSON コメントを入力として渡します。

注記

StartExecution API アクションクォータでは、開始できる実行の数を制限できます。StepFunctions.ExecutionLimitExceededRetry を使用して、実行が確実に開始されるようにします。以下を参照してください。

ワークフロー実行の関連付け

開始されたワークフロー実行を開始された実行に関連付けるには、Context オブジェクトから実行入力に実行 ID を渡します。実行中の Task状態の Context オブジェクトから ID にアクセスできます。パラメータ名.$に を追加し、 で Context オブジェクトの ID を参照することで、実行 ID を渡します$$.Execution.Id

"AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID.$": "$$.Execution.Id"

実行を開始するときに、AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID という特別なパラメータを使用できます。含まれている場合は、この関連付けは Step Functions コンソールの [Step details] (ステップ詳細) セクションでリンクを提供します。指定すると、ワークフローの実行を、実行の開始から、開始したワークフロー実行まで簡単にトレースできます。前の例を使用して、次のように実行 ID を HelloWorld ステートマシンの開始した実行に関連付けます。

{ "Type":"Task", "Resource":"arn:aws:states:::states:startExecution", "Parameters":{ "StateMachineArn":"arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld", "Input": { "Comment": "Hello world!", "AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID.$": "$$.Execution.Id" } }, "End":true }

詳細については、次を参照してください。