AWS CLIを使って、実行されているstate machineの数を取得する機会がありましたので、忘備録がてらまとめておきます。
実行中のstate machineの数を取得する方法
aws stepfunctions
のlist-executionsコマンドを使います。
$ accountId=XXXXXXXXXXXX
$ stateMachineArn=arn:aws:states:ap-northeast-1:${accountId}:stateMachine:MyStateMachine
$ aws stepfunctions list-executions \
--state-machine-arn ${stateMachineArn} \
----status-filter RUNNING
上記では、オプションのstate-machine-arnで指定したstate machineの実行のうち、ステータスがRUNNING、つまり、現在、実行されているものだけを取得します。
ステータスは、RUNNINGのほか、SUCCEEDED、FAILED、FAILED、ABORTED、PENDING_REDRIVEを指定できます。
さらに、実行されているstate machineの数を取得したいときは、以下のように、オプションのqueryが使えます。
aws stepfunctions list-executions --state-machine-ar ${stateMachineArn} --status-filter SUCCEEDED --query "length(executions)"
queryには、レスポンスデータをフィルタリングするための様々なJMESPath queryを使用できます。なお、JMESPathはJSONに対するクエリ言語です。
以上です。
参考
- https://awscli.amazonaws.com/v2/documentation/api/latest/reference/stepfunctions/list-executions.html
- https://dev.classmethod.jp/articles/check-the-event-source-of-step-functions-state-machine-execution/
- https://jmespath.org/
コメント