Wie kann ich verhindern, dass die Stabilisierung meines Amazon-ECS-Services in CloudFormation fehlschlägt?
Mein Amazon Elastic Container Service (Amazon ECS) -Service kann sich in AWS CloudFormation nicht stabilisieren. Ich erhalte die folgende Fehlermeldung: „Service arn:aws:ecs:us-east-accountID:service/ServiceName did not stabilize.“
Kurzbeschreibung
Ein in Amazon ECS erstellter Service kann sich nicht stabilisieren, wenn er sich nicht in dem in der AWS CloudFormation-Vorlage angegebenen Status befindet. Um zu bestätigen, dass ein Service die gewünschte Anzahl von Aufgaben mit der gewünschten Aufgabendefinition gestartet hat, führt AWS CloudFormation wiederholte DescribeServices-API-Aufrufe durch. Diese Aufrufe überprüfen den Status des Service, bis der gewünschte Status erreicht ist. Der Anrufvorgang kann bis zu drei Stunden dauern. Dann tritt bei AWS CloudFormation ein Timeout auf und es wird die Meldung „Service ARN did not stabilize“ zurückgegeben. Während AWS CloudFormation den Status des Service überprüft, verbleibt der Stack mit dem Service im Status CREATE_IN_PROGRESS oder UPDATE_IN_PROGRESS und kann nicht aktualisiert werden.
Um einen Timeout bei einem DescribeServices-API-Aufruf zu vermeiden, zwinge den Status der Amazon ECS-Serviceressource in AWS CloudFormation manuell in den Status CREATE_COMPLETE. Setze die gewünschte Anzahl des Service in der Amazon ECS-Konsole manuell auf Null, um die Ausführung von Aufgaben zu beenden. AWS CloudFormation betrachtet das Update dann als erfolgreich, da die Anzahl der Aufgaben der gewünschten Anzahl von Null entspricht.
Wichtig: Es empfiehlt sich, AWS CloudFormation nicht manuell in den Status CREATE_COMPLETE zu zwingen, da ein erzwungenes Stoppen zu einem Produktionsausfall führen kann.
**Hinweis:**Wenn bei der Ausführung von AWS Command Line Interface (AWS CLI)-Befehlen Fehler auftreten, findest du weitere Informationen unter Troubleshoot AWS CLI errors. Stelle außerdem sicher, dass du die neueste Version der AWS CLI-Version verwendest.
Lösung
Überprüfung der Ressourcenerstellung
Führe die folgenden Schritte aus:
-
Erstelle in der AWS CloudFormation-Vorlage eine AWS::ECS::Service-Ressource. Zum Beispiel:
Resources: ECSServiceA: Type: AWS::ECS::Service Properties: DesiredCount: 1 Cluster: awsExampleECSCluster LaunchType: EC2 ServiceName: "MyNginxService2" TaskDefinition: NginxTask:1 -
Öffne die AWS CloudFormation-Konsole und wähle dann den Stack aus.
-
Wähle die Registerkarte Ereignisse und überprüfe dann, ob die Ressource erstellt wird.
Die gewünschte Anzahl des Service aktualisieren
Du kannst die gewünschte Anzahl des Service entweder mit der AWS CLI oder der Amazon ECS-Konsole auf den ursprünglichen Wert aktualisieren.
AWS CLI
Gehe wie folgt vor:
-
Führe den AWS CLI-Befehl describe-services aus, um den Service zu beschreiben und die Service-Ereignisse aufzulisten:
aws ecs describe-services --cluster awsExampleECSCluster --services MyNginxService2 -
Führe den AWS CLI-Befehl update-service aus, um die gewünschte Anzahl des Service zu aktualisieren:
aws ecs update-service --cluster awsExampleECSCluster --service MyNginxService2 --desired-count 0 -
Aktualisiere --desired-count auf den ursprünglichen Wert.
Amazon-ECS-Konsole
Führe die folgenden Schritte aus:
-
Öffne die Amazon-ECS-Konsole.
-
Wähle im Navigationsbereich die Option Cluster aus. Wähle dann den Cluster aus, der den Amazon ECS-Service enthält, den du erstellt hast.
-
Wähle auf der Seite Cluster den Cluster aus, der den Amazon ECS-Service enthält, den du erstellt hast.
-
Wähle auf der Seite für den Cluster, den du ausgewählt hast, in der Spalte Servicename den Service aus.
-
Wähle die Registerkarte Ereignisse und dann Aktualisieren.
-
Gib auf der Seite Service konfigurieren für Anzahl der Aufgaben den Wert 0 ein.
-
Wähle Nächster Schritt, um zum Ende des Assistenten für Service aktualisieren zu gelangen, und wähle dann Service aktualisieren aus.
Der Service erreicht jetzt einen stabilen Zustand und stellt die Amazon ECS-Serviceressource in AWS CloudFormation auf CREATE_COMPLETE oder UPDATE_COMPLETE um.
Wichtig: Synchronisiere den AWS CloudFormation-Stack mit den Amazon ECS-Serviceeigenschaften, nachdem du das Problem mit den zugrunde liegenden Aufgaben behoben hast. Um eine Synchronisierung durchzuführen, ändere die gewünschte Anzahl (DesiredCount) manuell auf den ursprünglichen Wert aus der Vorlage zurück.
Ähnliche Informationen
- Themen
- Management & Governance
- Sprache
- Deutsch
Ähnliche Videos


Relevanter Inhalt
AWS OFFICIALAktualisiert vor einem Jahr