是否可以接收每个状态机的执行 Arns 列表

Is it possible to receive a list of execution Arns per state machine

我的公司正在使用 AWS Stepfunctions。现在我需要单个状态机的所有执行 Arns 的列表。

我想要的是来自执行的 input 参数。 为此,我目前正在查看此工作流程:

  1. 从状态机获取执行列表aws stepfunctions list-executions --state-machine-arn $ARN
  2. 遍历list,读出执行arns
  3. 获取每次执行的执行信息 aws stepfunctions describe-execution --execution-arn $ARN

是否有您可以使用的简单命令链,或者我是否需要继续使用我的 bashscript,解析 JSON 输出?

执行此操作的 shell 命令是:

aws stepfunctions list-executions \
  --state-machine-arn <YOUR STEP FN ARN> \
  --query "executions[*].{executionArn:executionArn}" \
  --output text | \
xargs -I {} aws stepfunctions describe-execution \
  --execution-arn {} \
  --query "executionArn"

--query 参数将 list-executions 输出过滤到您感兴趣的字段。然后将此字段传递给 describe-execution,另一个 --query 参数获取executionArn 字段。


要将每个输出写入一个单独的文件:

aws stepfunctions list-executions \
  --state-machine-arn <YOUR STEP FN ARN> \
  --query "executions[*].{executionArn:executionArn}" \
  --output text | \
xargs -I {} \
  sh -c \
  'aws stepfunctions describe-execution --execution-arn  \
   --query executionArn >> "output-$(echo  | cut -d: -f8)"' -- {}

第二个 aws cli 命令写入一个文件名,前缀为 output-,后跟执行名称(ARN 的第 8 个字段)。