获取准备阶段批准的AWS管道列表

时间:2020-05-31 20:57:49

标签: bash jq aws-cli aws-codepipeline

我有40多个管道需要从开发人员批准到质量检查,然后再由质量检查批准到阶段。我正在使用AWS CLI命令执行脚本。我已经能够对单个管道执行此操作,因为我知道特定的管道已准备好被批准。

aws codepipeline put-approval-result --cli-input-json file://TestPipeline.json 

这是我如何收集信息以批准单个管道

aws codepipeline get-pipeline-state --name Pipeline-Ready-for-Approval 

我要寻找的是-有没有一种方法可以使用get-pipeline-state遍历所有管道并标识阶段名称和操作名称,而无需手动遍历每个管道的输出。 / p>

我可以尝试从aws codepipeline list-pipelines获取管道名称,以使列表循环通过。

是否可以同时使用bash脚本,awscli和jq?

谢谢

1 个答案:

答案 0 :(得分:0)

您可以使用以下方法获得大部分的信息

pipelines=$(aws codepipeline list-pipelines --query 'pipelines[].name' --output text)

for p in pipelines; do
    aws codepipeline get-pipeline-state \
        --name $p \
        --query 'stageStates[?latestExecution.status==`InProgress`].{stageName:stageName,actionName:actionStates[0].actionName,token:actionStates[0].latestExecution.token}'
done

这假定批准动作在阶段中以 first only 动作存在。

您将获得put-approval-result命令所需的输出