AWS Step Functionsで、前のタスクからResultPathで受け取った値を次のタスクで使うためには、ResultPathで受け取った値を状態入力(state input)として次のタスクに渡す方法を使用します。これを行うために、ResultPath と InputPath を適切に設定する必要があります。以下に、具体的な手順と例を示します。
ステップごとの説明
1. 前のタスクで結果を受け取る
前のタスクが完了した時点で出力結果(結果Pathに保存)を次のタスクに渡します。
2. 次のタスクでその結果を利用する
次のタスクがその入力を必要とする場合、InputPathを設定して必要なデータを取り出します。
例
以下に、2つの連続するタスクの簡単なステートマシンの例を示します。
前提
前のタスク FirstTask はいくつかのデータを生成し、その結果を次のタスクで使用します。
Step Functionsの定義例
{
"Comment": "State machine to pass result from one task to another",
"StartAt": "FirstTask",
"States": {
"FirstTask": {
"Type": "Task",
"Resource": "arn:aws:lambda:REGION:ACCOUNT_ID:function:FirstTaskFunction",
"ResultPath": "$.firstTaskResult",
"Next": "ProcessFirstTaskResult"
},
"ProcessFirstTaskResult": {
"Type": "Pass",
"InputPath": "$.firstTaskResult",
"Next": "SecondTask"
},
"SecondTask": {
"Type": "Task",
"Resource": "arn:aws:lambda:REGION:ACCOUNT_ID:function:SecondTaskFunction",
"InputPath": "$.firstTaskResult",
"End": true
}
}
}
説明
- FirstTask:
- このステートは
FirstTaskFunctionというLambda関数を呼び出します。 - 結果は
$.firstTaskResultに保存されます (ResultPath)。
- ProcessFirstTaskResult:
Passステートを使用して、結果を次のステートに渡します。InputPathを$.firstTaskResultに設定することで、firstTaskResultのみを次のステートに渡します。
- SecondTask:
- このステートは
SecondTaskFunctionというLambda関数を呼び出します。 InputPathを$.firstTaskResultに設定することで、firstTaskResultを第二のタスクの入力として使用します。
詳細
ResultPath:前のステートの出力から、結果を保存する場所を指定します。InputPath:次のステートで使用する入力データの場所を指定します。
これにより、前のタスクの出力結果を次のタスクで利用できます。各タスクの結果を柔軟に接続・変換できるため、複雑なワークフローを構築する際に役立ちます。

コメント