翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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.ExecutionLimitExceeded
で Retry
を使用して、実行が確実に開始されるようにします。以下を参照してください。
ワークフロー実行の関連付け
開始されたワークフロー実行を開始された実行に関連付けるには、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
}
詳細については、次を参照してください。