Сохраните значение для ошибок ECS Taskdef в переменной и сравните его при условии if - PullRequest
0 голосов
/ 08 апреля 2019

Я пытаюсь написать скрипт groovy для конвейерного задания jenkins, чтобы перехватить любую строку для сбоев в taskdef в ECS, а затем на основе этого либо обновить сервис, либо пересоздать его.Я использую что-то вроде ниже: -

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
     }

Но как-то не получается.Также для Revision, если я напрямую отображаю его значение, он дает ошибку синтаксического анализа jq как недопустимый числовой литерал.То же самое со значением для услуг.Как мне сохранить эти значения в переменных, чтобы я мог вывести значения или сравнить их с пустой строкой, как видно выше

...