Azure DevOps管道中如何让az automation runbook start等待运行完成?
解决Azure DevOps管道中Runbook按顺序执行的问题
你可以通过捕获Runbook启动后的作业ID,针对该作业等待执行完成,来实现顺序运行的效果。具体修改如下:
修改后的AzureCLI任务脚本:
az config set extension.use_dynamic_install=yes_without_prompt # 启动runbook-1并捕获作业ID JOB_ID=$(az automation runbook start --automation-account-name "myaccount" --resource-group "myrg" --name "runbook-1" --query id -o tsv) # 等待该作业完成,直到状态变为终端状态(Completed/Failed等) az automation job wait --automation-account-name "myaccount" --resource-group "myrg" --job-id $JOB_ID # 可选:检查作业执行状态,失败则终止管道 JOB_STATUS=$(az automation job show --automation-account-name "myaccount" --resource-group "myrg" --job-id $JOB_ID --query status -o tsv) if [ "$JOB_STATUS" != "Completed" ]; then echo "Runbook-1执行失败,状态为$JOB_STATUS" exit 1 fi # 启动runbook-2 az automation runbook start --automation-account-name "myaccount" --resource-group "myrg" --name "runbook-2"
关键说明:
--query id -o tsv:从az automation runbook start的返回结果中提取作业ID,用纯文本格式输出,方便赋值给变量。az automation job wait:针对具体的作业ID等待,直到作业进入终端状态,不会像az automation runbook wait那样立即退出。- 可选的状态检查:如果需要在前序Runbook失败时终止管道,可添加状态判断逻辑,确保后续Runbook仅在前序成功时执行。
内容的提问来源于stack exchange,提问作者teamdever
相关产品推荐
相关产品推荐

