ECS 服务:循环遍历 ECS 集群并将所有任务缩减为 0

ECS 服务:循环遍历 ECS 集群并将所有任务缩减为 0

我正在尝试编写一个脚本来停止现有集群中的所有服务。要实现这一点,ECS 服务必须缩减到所需的 0 个任务状态。到目前为止,我已通过一个简单的 shell 脚本示例为单个服务完成了此操作:

 aws ecs update-service --cluster ${ecsClusterName} --service ${nameService} --task-definition ${taskDefinition} --desired-count 0

我面临的问题:如何列出所有任务的定义:链接到集群中给定服务的版本并在循环中将所需状态设置为 0

答案1

  1. 列出服务:

    aws ecs list-services --cluster ${ecsClusterName}
    
  2. 在文件中写入服务:

    aws ecs list-services --cluster ${ecsClusterName} | awk -F'"' '{print $2}' | rev | awk -F'/' '{print $1}' | rev | grep -v serviceArns > services.txt
    
  3. 缩小:

    for service in $(cat services.txt); do aws ecs update-service --cluster ${ecsClusterName} --service "$service" --desired-count 0 --no-cli-pager > /dev/null; done
    

相关内容