SFN値受け渡し

AWS Step Functionsで、前のタスクからResultPathで受け取った値を次のタスクで使うためには、ResultPathで受け取った値を状態入力(state input)として次のタスクに渡す方法を使用します。これを行うために、ResultPathInputPath を適切に設定する必要があります。以下に、具体的な手順と例を示します。

ステップごとの説明

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
    }
  }
}

説明

  1. FirstTask:
  • このステートは FirstTaskFunction というLambda関数を呼び出します。
  • 結果は$.firstTaskResultに保存されます (ResultPath)。
  1. ProcessFirstTaskResult:
  • Passステートを使用して、結果を次のステートに渡します。
  • InputPath$.firstTaskResultに設定することで、firstTaskResult のみを次のステートに渡します。
  1. SecondTask:
  • このステートは SecondTaskFunction というLambda関数を呼び出します。
  • InputPath$.firstTaskResultに設定することで、firstTaskResult を第二のタスクの入力として使用します。

詳細

  • ResultPath:前のステートの出力から、結果を保存する場所を指定します。
  • InputPath:次のステートで使用する入力データの場所を指定します。

これにより、前のタスクの出力結果を次のタスクで利用できます。各タスクの結果を柔軟に接続・変換できるため、複雑なワークフローを構築する際に役立ちます。

コメント

タイトルとURLをコピーしました