将ECS Taskdef故障的值存储在变量中,并在满足条件的情况下进行比较

时间:2019-04-08 19:18:26

标签: amazon-web-services groovy jq

我正在尝试为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解析错误作为无效的数字文字。与“服务”的值相同。我如何将这些值存储在变量中,以便可以输出值或将它们与空字符串进行比较,如上所示

0 个答案:

没有答案