我正在尝试编写一个脚本来停止现有集群中的所有服务。要实现这一点,ECS 服务必须缩减到所需的 0 个任务状态。到目前为止,我已通过一个简单的 shell 脚本示例为单个服务完成了此操作:
aws ecs update-service --cluster ${ecsClusterName} --service ${nameService} --task-definition ${taskDefinition} --desired-count 0
我面临的问题:如何列出所有任务的定义:链接到集群中给定服务的版本并在循环中将所需状态设置为 0
答案1
列出服务:
aws ecs list-services --cluster ${ecsClusterName}
在文件中写入服务:
aws ecs list-services --cluster ${ecsClusterName} | awk -F'"' '{print $2}' | rev | awk -F'/' '{print $1}' | rev | grep -v serviceArns > services.txt
缩小:
for service in $(cat services.txt); do aws ecs update-service --cluster ${ecsClusterName} --service "$service" --desired-count 0 --no-cli-pager > /dev/null; done