Im ecs-Cluster läuft ein Dienst mit 2 ec2-Instanzen. Und ich aktualisiere die Aufgabendefinition, um das neue Docker-Image aufzunehmen. Die alte Aufgabendefinition wird jedoch weiterhin ausgeführt, obwohl eine neue Aufgabendefinition vorhanden ist.
Ich habe die folgenden Befehle verwendet, um die Aufgabendefinition und den Dienst zu aktualisieren.
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
Ich habe es mehrmals versucht, kann aber nicht herausfinden, wo ich falsch gelaufen bin. Ich möchte, dass der ecs-Dienst die neue Aufgabendefinition anstelle der alten ausführt.
quelle
So aktualisieren Sie eine Aufgabendefinition in den im Dienst ausgeführten "Aufgaben" Sie müssen die Aufgaben löschen und eine neue Aufgabe starten.
Auf diese Weise löse ich das Problem der Aktualisierung der Aufgabendefinition in Aufgaben
Ich habe folgenden Code geschrieben:
quelle
Ich habe mich schon lange am Kopf gekratzt und bis letzte Woche nirgendwo eine praktikable Lösung gefunden.
AWS hat gerade seine neue API veröffentlicht, in der die Option --force zum Entfernen von Diensten verfügbar ist . Das Problem mit der Zielgruppe besteht einfach darin, dass die bei Ihrer Aufgabe registrierte Zielgruppe bereits gelöscht wurde und Sie keine neue Zielgruppe daran binden können. Da diese Aufgabe und dieser Dienst jetzt beschädigt sind, können Sie sie nur löschen. Sie können sie nicht mehr aktualisieren.
Mit diesem Befehl können Sie Ihren Dienst jetzt löschen. es war letzte Woche unmöglich!
Hoffe das hilft
quelle