No cluster ecs, tenho um serviço em execução com 2 instâncias ec2. E atualizo a definição da tarefa para obter a nova imagem do Docker. Mas a definição de tarefa antiga ainda está em execução, mesmo que exista uma nova definição de tarefa.
Eu usei os seguintes comandos para atualizar a definição e o serviço da tarefa.
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
Eu tentei várias vezes, mas não consigo descobrir onde errei. Desejo que o serviço ecs execute a nova definição de tarefa em vez da antiga.
fonte
Para atualizar uma definição de tarefa nas "tarefas" em execução no serviço Você precisa excluir as tarefas e Iniciar uma nova tarefa.
Dessa maneira, resolvo o problema de atualizar a definição de tarefa nas tarefas
Eu escrevi o seguinte código:
fonte
Venho estudando isso há muito tempo e nunca encontrei uma solução viável em nenhum lugar até a semana passada.
A AWS acaba de lançar sua nova API, na qual eles têm a opção --force para remoção de serviço. O problema do grupo-alvo que você está enfrentando é simplesmente porque o grupo-alvo registrado com sua tarefa já foi excluído e você não pode vincular um novo grupo-alvo a ele. Portanto, como essa tarefa e serviço estão corrompidos agora, a única maneira de lidar é excluí-lo, não é mais possível atualizá-lo.
Você pode usar este comando para excluir seu serviço agora; foi impossível na semana passada!
Espero que isto ajude
fonte