ステートマシンの作成
まずステートマシンの Type
フィールドですが、 Task
を指定します。これはステートマシンが他の AWS リソースを呼び出すときに使用します。
"Type": "Task"
次に Resource
フィールドですが、Batch 用には次の ARN が用意されています。
arn:aws:states:::batch:submitJob
さらにサフィックスに .sync
を付与すると、ステートマシンは実行完了まで待機します。
リクエストの完了まで待機してから、次の状態に進むことができます。Step Functions を待機させるには、"Resource"フィールドを使用して、タスク状態定義の.syncサフィックスをリソース URI の後に付加します。
詳しくはこちらを参照してください。
上記を踏まえ、以下のような Resource
を指定します。
"Resource": "arn:aws:states:::batch:submitJob.sync"
次に Parameters
フィールドですが、以下のように指定します。
"Parameters": {
"JobDefinition": "call-job",
"JobName": "call-job",
"JobQueue": "call-queue"
}
以下が完成版になります。
{
"Comment": "Execute Variant Call",
"StartAt": "call",
"States": {
"call": {
"Type": "Task",
"Resource": "arn:aws:states:::batch:submitJob.sync",
"Parameters": {
"JobDefinition": "call-job",
"JobName": "call-job",
"JobQueue": "call-queue"
},
"End": true
}
}
}
実行時はジョブキューで指定したコンピューティング環境を有効化することを忘れないように注意してください。
以下は実行結果になります。
参考記事