Solución:
Basta con establecer el número deseado de tareas para un servicio en 0. ECS eliminará automáticamente todas las tareas en ejecución.
aws ecs update-service --desired-count 0 --cluster "ecs-my-ClusterName" --service "service-my-ServiceName-117U7OHVC5NJP"
Puede realizar una “pausa” ajustando la configuración de su servicio para que coincida con su número actual de tareas en ejecución. Por ejemplo, si actualmente tiene 3 tareas en ejecución en su servicio, configuraría el servicio de la siguiente manera:
Esto le dice al servicio:
- La cantidad de tareas que quiero es
[current-count]
- Quiero que mantengas por lo menos
[current-count]
- No quiero mas que
[current-count
These combined effectively halt your service from making any changes.
The accepted answer is incorrect.
If you set both “Minimum healthy percent” and “Maximum healthy percent” to 100, AWS will give you an error similar to following:
To stop service from creating new tasks, you have to update service by updating task definition and setting desired number of tasks to 0. After that you can use AWS CLI (fastest option) to stop existing running tasks , for example:
aws ecs list-services --cluster "ecs-my-ClusterName"
aws ecs list-tasks --cluster "ecs-my-ClusterName" --service "service-my-ServiceName-117U7OHVC5NJP"
After that you will get the list of the running tasks for the service, such as:
{
"taskArns": [
"arn:aws:ecs:us-east-1:XXXXXXXXXXX:task/12e13d93-1e75-4088-a7ab-08546d69dc2c",
"arn:aws:ecs:us-east-1:XXXXXXXXXXX:task/35ed484a-cc8f-4b5f-8400-71e40a185806"
]
}
Finalmente, use a continuación para detener cada tarea:
aws ecs stop-task --cluster "ecs-my-ClusterName" --task 12e13d93-1e75-4088-a7ab-08546d69dc2c
aws ecs stop-task --cluster "ecs-my-ClusterName" --task 35ed484a-cc8f-4b5f-8400-71e40a185806
ACTUALIZAR: Al establecer el número deseado de tareas en ejecución en 0, ECS detendrá y agotará todas las tareas en ejecución en ese servicio. No es necesario detenerlos individualmente después mediante los comandos CLI publicados anteriormente.