En el clúster ecs, tengo un servicio que se ejecuta con 2 instancias ec2. Y actualizo la definición de la tarea para tomar la nueva imagen del acoplador. Pero la antigua definición de tarea todavía se está ejecutando aunque haya una nueva definición de tarea.
He usado los siguientes comandos para actualizar la definición de tareas y el servicio.
aws ecs register-task-definition --family service90-task --cli-input-json file://service90-task.json
aws ecs update-service --cluster service90-cluster --service service90-service --desired-count 0
TASK_REVISION=`aws ecs describe-task-definition --task-definition service90-task | egrep "revision" | tr "/" " " | awk '{print $2}' | sed 's/"$//'`
aws ecs update-service --cluster service90-cluster --service service90-service --task-definition service90-task:${TASK_REVISION} --desired-count 2
Lo intenté varias veces, pero no puedo entender dónde me equivoqué. Quiero que el servicio ecs ejecute la nueva definición de tarea en lugar de la anterior.
fuente
Para actualizar una definición de tarea en las "tareas" que se ejecutan en el servicio, debe eliminar las tareas e iniciar una nueva tarea.
De esta manera, resuelvo el problema de actualizar la definición de tareas en tareas
He escrito el siguiente código:
fuente
He estado pensando mucho en esto durante mucho tiempo y nunca encontré una solución viable en ningún lugar hasta la semana pasada.
AWS acaba de lanzar su nueva API donde tienen la opción --force para la eliminación del servicio. El problema del grupo objetivo al que se enfrenta es simplemente porque el grupo objetivo registrado con su tarea ya está eliminado y no puede vincular un nuevo grupo objetivo. Entonces, dado que esta tarea y este servicio están dañados ahora, la única forma de tratar es eliminarlo, ya no puede actualizarlo.
Puede usar este comando para eliminar su servicio ahora; ¡fue imposible la semana pasada!
Espero que esto ayude
fuente