Open6

StepFunctionsめも

えんぶんえんぶん

AWS Toolkit for VS Code の StepFunctions向け機能
https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/bulding-stepfunctions.html

jsonファイルを*.asl.jsonにするとコードスニペットやバリデーションが機能する。
開いてるファイルの右上にステートマシン図を描画するボタンも出てくる。

アクセスキーをCLIに登録しておけばAWS上のステートマシン一覧取得、DL、更新、実行などもできる。

えんぶんえんぶん

input-output-processing

えんぶんえんぶん

InputPath

ステートマシンへの入力が以下と仮定。

{
  "comment": "Example for InputPath.",
  "dataset1": {
    "val1": 1,
    "val2": 2,
    "val3": 3
  },
  "dataset2": {
    "val1": "a",
    "val2": "b",
    "val3": "c"
  }
}

ステートマシンの定義が以下ならば

{
  "Comment": "InputPath sample",
  "StartAt": "Pass",
  "States": {
    "Pass": {
      "Type": "Pass",
      "InputPath": "$.dataset2",
      "End": true
    }
  }
}

"Pass"ステートへの入力は以下になる

{
  "dataset2": {
    "val1": "a",
    "val2": "b",
    "val3": "c"
  }
}
えんぶんえんぶん

ResultPath

ResultPathを指定しない場合は"ResultPath": "$"を指定したのと同等になる。
これはタスクの実行結果が返すレスポンスに完全に置き換えられる

"ResultPath": nullとすると、タスクの実行結果レスポンスは完全に捨てられる=ステートマシンへの入力がそのまま次のステートへと渡る。

"ResultPath": "$.taskresult"のようにすると、タスク実行結果のレスポンスはステートマシンへの入力に追加される形で含まれ、次のステートへと渡される。
ここで"taskresult"という属性がステートマシン入力の属性に存在する場合、入力の属性を上書きして次のステートへと渡す。