NOTE: You will be required to have PROFILE
and STATE_MACHINE_ARN
set in your environment variables for the below to work. Alternatively set them as part of the oneliner.
The blow will query AWS for all RUNNING
executions of your state-machine, then loop through each one sending a stop request. This will terminate the function in whatever state it happens to be in. This will NOT stop external work that has already been invoked. If you run into errors with the below, not that it is trying to run the stop command in parallel, so a smaller parallelism number may be appropriate for your use case.
$ aws --profile ${PROFILE} stepfunctions list-executions --state-machine-arn ${STATE_MACHINE_ARN} --status-filter RUNNING | grep executionArn | awk '{print $2}' | sed -e 's/\"//g' | sed -e 's/,//g' | xargs -L 1 -n 1 -P 10 aws --profile ${PROFILE} stepfunctions stop-execution --execution-arn
maybe too late, but to run this over a big list without need of accepting each output/response from aws, you can add
> /tmp/output.txt
to the end, like:that way you don't need to do anything, and it will stop all running sfn.