diff --git a/catalog/aws/singer-taps/step-functions.tf b/catalog/aws/singer-taps/step-functions.tf index 2cd2284e..4950a033 100644 --- a/catalog/aws/singer-taps/step-functions.tf +++ b/catalog/aws/singer-taps/step-functions.tf @@ -6,8 +6,32 @@ locals { "Version": "1.0", "Comment": "Run Sync (ECS Fargate: ${tap_spec.image})", "TimeoutSeconds": ${var.timeout_hours * (60 * 60)}, - "StartAt": "RunTask", + "StartAt": "ListRunningExecutions", "States": { + "ListRunningExecutions": { + "Type": "Task", + "Parameters": { + "StateMachineArn.$": "$$.StateMachine.Id", + "StatusFilter": "RUNNING" + }, + "Resource": "arn:aws:states:::aws-sdk:sfn:listExecutions", + "Next": "IsExecutionCountGreaterThan1", + "ResultPath": "$.runningExecutionsCount", + "ResultSelector": { + "runningExecutionsCount.$": "States.ArrayLength($.Executions)" + } + }, + "IsExecutionCountGreaterThan1": { + "Type": "Choice", + "Choices": [ + { + "Variable": "$.runningExecutionsCount.runningExecutionsCount", + "NumericGreaterThan": 1, + "Next": "NotifyOnError" + } + ], + "Default": "RunTask" + }, "RunTask": { "Type": "Task", "Resource": "arn:aws:states:::ecs:runTask.sync",