我正在尝试为jenkins管道作业编写groovy脚本,以捕获ECS中taskdef中失败的任何字符串,然后基于此更新服务或重新创建它。我正在使用以下内容:-
def DESIRED_COUNT = "1"
def SERVICES = "aws ecs describe-services --services my-service --cluster my-cluster --region us-east-1 | jq .failures[]"
def REVISION = "aws ecs describe-task-definition --task-definition my-task --region us-east-1 | jq .taskDefinition.revision"
if("${SERVICES}" == "")
{
sh "echo 'entered existing service' && DESIRED_COUNT=`aws ecs describe-services --services my-service --cluster my-cluster --region us-east-1 | jq .services[].desiredCount` && aws ecs update-service --cluster my-cluster --region us-east-1 --service my-service --task-definition my-task:${REVISION} --desired-count ${DESIRED_COUNT}"
}
if("${SERVICES}" != "")
{
echo "entered new service"
aws ecs create-service --service-name my-service --desired-count ${DESIRED_COUNT} --task-definition my-task --cluster my-cluster --region us-east-1
}
但是似乎不起作用。同样对于修订,如果我直接回显它的值,它会给出jq解析错误作为无效的数字文字。与“服务”的值相同。我如何将这些值存储在变量中,以便可以输出值或将它们与空字符串进行比较,如上所示