Я пытаюсь написать скрипт 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 как недопустимый числовой литерал.То же самое со значением для услуг.Как мне сохранить эти значения в переменных, чтобы я мог вывести значения или сравнить их с пустой строкой, как видно выше