Wie kann ich verhindern, dass sich mein Amazon ECS-Service in AWS CloudFormation nicht stabilisiert?

Lesedauer: 4 Minute
0

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 hat sich nicht stabilisiert.“

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 DescribeService-API-Aufrufe durch. Diese Aufrufe überprüfen den Status des Dienstes, 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 hat sich nicht stabilisiert“ zurückgegeben. Während AWS CloudFormation den Status des Services überprüft, verbleibt der Stack, der den Service enthält, im Status CREATE\ _IN\ _PROGRESS oder UPDATE\ _IN\ _PROGRESS und kann nicht aktualisiert werden.

Wenn Sie das zugrunde liegende Problem mit Ihren Amazon ECS-Servicetasks nicht sofort beheben können und nicht warten möchten, bis die DescribeService-API-Aufrufe ablaufen, können Sie den Status der Amazon ECS-Serviceressource in AWS CloudFormation manuell in einen CREATE\ _COMPLETE-Status erzwingen. Setzen Sie dazu die gewünschte Anzahl des Dienstes 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:**Das manuelle Erzwingen von AWS CloudFormation in den Status CREATE\ _COMPLETE ist keine bewährte Methode für Produktionsservices, da alle Aufgaben gestoppt werden und dies zu einem Produktionsausfall führen kann.

**Hinweis:**Wenn Sie beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehler erhalten, stellen Sie sicher, dass Sie die neueste AWS CLI-Version verwenden.

Behebung

Überprüfen Sie die Ressourcenerstellung

  1. Erstellen Sie in Ihrer 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
  1. Öffnen Sie die AWS CloudFormation-Konsole und wählen Sie dann Ihren Stack aus.

  2. Wählen Sie den Tab Ereignisse und überprüfen Sie dann, ob Ihre Ressource erstellt wird.

Aktualisieren Sie die gewünschte Anzahl des Dienstes

Sie können die gewünschte Anzahl des Services entweder mit der AWS-CLI oder der Amazon ECS-Konsole auf Ihren ursprünglichen Wert aktualisieren.

Mithilfe der AWS-CLI:

  1. Führen Sie den folgenden Befehl aus, um den Dienst zu beschreiben und die Dienstereignisse aufzulisten:
aws ecs describe-services --cluster awsExampleECSCluster --services MyNginxService2
  1. Führen Sie den folgenden Befehl aus, um die gewünschte Anzahl des Dienstes zu aktualisieren:
aws ecs update-service --cluster awsExampleECSCluster --service MyNginxService2 --desired-count 0
  1. Aktualisieren Sie --desired-count auf Ihren ursprünglichen Wert.

Öffnen Sie die Amazon ECS-Konsole.

1.Öffnen Sie die Amazon ECS-Konsole.

  1. Wählen Sie im Navigationsbereich Clusters und dann den Cluster aus, der den Amazon ECS-Service enthält, den Sie erstellt haben.

  2. Wählen Sie auf der Seite Cluster den Cluster aus, der den Amazon ECS-Service enthält, den Sie erstellt haben.

  3. Wählen Sie auf der Seite für den Cluster, den Sie ausgewählt haben, in der Spalte Dienstname Ihren Dienst aus.

  4. Wählen Sie den Tab Ereignisse und dann Aktualisieren.

  5. Geben Sie auf der Seite Service konfigurieren für Anzahl der Aufgaben den Wert 0 ein.

  6. Wählen Sie Nächster Schritt, um zum Ende des Update Service-Assistenten zu gelangen, und wählen Sie dann Update Service 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:**Um Ihren AWS CloudFormation-Stack mit den Amazon ECS-Serviceeigenschaften zu synchronisieren, nachdem Sie das Problem mit den zugrunde liegenden Aufgaben behoben haben, müssen Sie die gewünschte Anzahl (DesiredCount) manuell auf den ursprünglichen Wert aus Ihrer Vorlage zurücksetzen.


Ähnliche Informationen

Aktualisierung eines Dienstes

update-service

services-stable

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 3 Jahren