So erkennt der Amazon ECS Deployment Circuit Breaker Fehler - Amazon Elastic Container Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

So erkennt der Amazon ECS Deployment Circuit Breaker Fehler

Beim Bereitstellungsschutzschalter handelt es sich um einen Mechanismus zur fortlaufenden Aktualisierung, der feststellt, ob die Aufgaben einen stabilen Status erreichen. Der Bereitstellungsschutzschalter verfügt über eine Option, mit der eine fehlgeschlagene Bereitstellung automatisch auf die Bereitstellung zurückgesetzt wird, die sich im Status COMPLETED befindet.

Wenn sich der Status einer Servicebereitstellung ändert, sendet Amazon ECS ein Ereignis zur Änderung des Status der Servicebereitstellung an EventBridge. Dies bietet eine programmgesteuerte Möglichkeit, den Status Ihrer Servicebereitstellungen zu überwachen. Weitere Informationen finden Sie unter Ereignisse zur Änderung des Bereitstellungsstatus des Amazon ECS-Service. Wir empfehlen Ihnen, eine EventBridge Regel mit dem Wert eventName von zu erstellen und zu überwachen, SERVICE_DEPLOYMENT_FAILED sodass Sie manuelle Maßnahmen ergreifen können, um Ihre Bereitstellung zu starten. Weitere Informationen finden Sie unter EventBridgeRegel erstellen im EventBridge Amazon-Benutzerhandbuch.

Wenn der Bereitstellungsschutzschalter feststellt, dass eine Bereitstellung fehlgeschlagen ist, sucht er nach der letzten Bereitstellung, die sich im Status COMPLETED befindet. Dies ist die Bereitstellung, die als Rollback-Bereitstellung verwendet wird. Wenn das Rollback beginnt, ändert sich die Bereitstellung von COMPLETED zu IN_PROGRESS. Das bedeutet, dass für die Bereitstellung kein weiterer Rollback in Frage kommt, bis der Status COMPLETED erreicht wurde. Wenn der Bereitstellungsschutzschalter keine Bereitstellung findet, die sich in im Status COMPLETED befindet, startet der Schutzschalter keine neuen Aufgaben und die Bereitstellung wird angehalten.

Wenn Sie einen Service erstellen, verfolgt der Scheduler die Aufgaben, die nicht gestartet werden konnten, in zwei Phasen.

  • Phase 1 — Der Scheduler überwacht die Aufgaben, um festzustellen, ob sie in den Status RUNNING übergehen.

    • Erfolgreich — Es besteht die Möglichkeit, dass die Bereitstellung in den Status ABGESCHLOSSEN übergeht, da mehrere Aufgaben in den Status RUNNING übergegangen sind. Die Fehlerkriterien werden übersprungen und der Schutzschalter wechselt zur Stufe 2.

    • Fehler — Es gibt aufeinanderfolgende Aufgaben, die nicht in den Status RUNNING übergegangen sind, und die Bereitstellung könnte in den Status FAILED übergehen.

  • Phase 2 — Die Bereitstellung geht in diese Phase über, wenn sich mindestens eine Aufgabe im Status RUNNING befindet. Der Schutzschalter überprüft die Integritätsprüfungen für die Aufgaben in der aktuellen Bereitstellung, die gerade ausgewertet werden. Bei den validierten Zustandsprüfungen handelt es sich um Elastic Load Balancing, AWS Cloud Map Service Health Checks und Container Health Checks.

    • Erfolgreich — Es gibt mindestens eine Aufgabe im Status Running, deren Integritätsprüfungen bestanden wurden.

    • Fehlgeschlagen — Die Aufgaben, die aufgrund fehlgeschlagener Integritätsprüfungen ersetzt wurden, haben den Schwellenwert für Fehler erreicht.

Beachten Sie Folgendes, wenn Sie die Deployment Circuit Breaker-Methode für einen Dienst verwenden. EventBridge generiert die Regel.

  • Die DescribeServices-Antwort bietet Einblick in den Status einer Bereitstellung, den rolloutState und rolloutStateReason. Wenn eine neue Bereitstellung gestartet wird, beginnt der Rollout-Status in einem IN_PROGRESS-Zustand. Wenn der Service einen stabilen Zustand erreicht, wechselt der Rollout-Status zu COMPLETED. Wenn der Service keinen stabilen Status erreicht und der Schutzschalter aktiviert wird, wechselt die Bereitstellung in einen FAILED-Status. Eine Bereitstellung in einem FAILED-Status startet keine neuen Aufgaben.

  • Zusätzlich zu den Ereignissen zur Statusänderung der Servicebereitstellung, die Amazon ECS für gestartete und abgeschlossene Bereitstellungen sendet, sendet Amazon ECS auch ein Ereignis, wenn eine Bereitstellung mit aktiviertem Schutzschalter fehlschlägt. Diese Ereignisse enthalten Details dazu, warum eine Bereitstellung fehlgeschlagen ist oder ob eine Bereitstellung aufgrund eines Rollbacks gestartet wurde. Weitere Informationen finden Sie unter Ereignisse zur Änderung des Bereitstellungsstatus des Amazon ECS-Service.

  • Wenn eine neue Bereitstellung gestartet wird, weil eine vorherige Bereitstellung fehlgeschlagen ist und ein Rollback aufgetreten ist, zeigt das reason-Feld des Ereignisses für die Statusänderung der Service-Bereitstellung an, dass die Bereitstellung aufgrund eines Rollbacks gestartet wurde.

  • Der Bereitstellungsschutzschalter wird nur für Amazon-ECS-Services unterstützt, die den Bereitstellungscontroller für fortlaufende Aktualisierung (ECS) verwenden.

  • Sie müssen die Amazon ECS-Konsole oder den, AWS CLI wenn Sie den Deployment Circuit Breaker mit der CloudWatch Option verwenden, verwenden. Weitere Informationen finden Sie unter Erstellen eines Services mit definierten Parametern und create-service in der AWS Command Line Interface -Referenz.

Das folgende create-service AWS CLI Beispiel zeigt, wie ein Linux-Service erstellt wird, wenn der Deployment Circuit Breaker mit der Rollback-Option verwendet wird.

aws ecs create-service \ --service-name MyService \ --deployment-controller type=ECS \ --desired-count 3 \ --deployment-configuration "deploymentCircuitBreaker={enable=true,rollback=true}" \ --task-definition sample-fargate:1 \ --launch-type FARGATE \ --platform-family LINUX \ --platform-version 1.4.0 \ --network-configuration "awsvpcConfiguration={subnets=[subnet-12344321],securityGroups=[sg-12344321],assignPublicIp=ENABLED}"

Beispiel:

Bereitstellung 1 befindet sich im Status COMPLETED.

Bereitstellung 2 kann nicht gestartet werden, sodass der Schutzschalter per Rollback auf Bereitstellung 1 zurückkehrt. Bereitstellung 1 wechselt in den Status IN_PROGRESS.

Bereitstellung 3 wird gestartet und es gibt keine Bereitstellung im Status COMPLETED, sodass Bereitstellung 3 kein Rollback oder Starten von Aufgaben durchführen kann.

Fehlerschwellenwert

Der Bereitstellungs-Leistungsschalter berechnet den Schwellenwert und verwendet dann den Wert, um zu bestimmen, wann die Bereitstellung in einen FAILED-Zustand versetzt werden soll.

Der Auslöseschalter hat einen Mindestschwellenwert von 3 und einen Höchstschwellenwert von 200 und verwendet die Werte in der folgenden Formel, um den Bereitstellungsfehler zu ermitteln.

Minimum threshold <= 0.5 * desired task count => maximum threshold

Wenn das Ergebnis der Berechnung größer als der Mindestwert von 3, aber kleiner als der Höchstwert von 200 ist, wird der Ausfallschwellenwert auf den berechneten Schwellenwert (aufgerundet) gesetzt.

Anmerkung

Sie können keinen der Schwellenwerte ändern.

Es gibt zwei Phasen für die Überprüfung des Bereitstellungsstatus.

  1. Der Bereitstellungs-Leistungsschalter überwacht Aufgaben, die Teil der Bereitstellung sind und sucht nach Aufgaben, die sich im RUNNING-Zustand befinden. Der Scheduler ignoriert die Fehlerkriterien, wenn sich eine Aufgabe in der aktuellen Bereitstellung im RUNNING-Zustand befindet und fährt mit der nächsten Stufe fort. Wenn Aufgaben den RUNNING-Zustand nicht erreichen, erhöht der Bereitstellungs-Leistungsschalter die Fehleranzahl um eins. Wenn die Fehleranzahl dem Schwellenwert entspricht, wird die Bereitstellung als FAILED markiert.

  2. Diese Phase tritt ein, wenn der RUNNING Status eine oder mehrere Aufgaben enthält. Der Bereitstellungs-Leistungsschalter führt Zustandsprüfungen der folgenden Ressourcen für die Aufgaben in der aktuellen Bereitstellung durch:

    • Elastic Load Balancing-Load Balancer

    • AWS Cloud Map Dienst

    • Zustandsprüfungen für Amazon-ECS-Container

    Wenn eine Zustandsprüfung für die Aufgabe fehlschlägt, erhöht der Bereitstellungs-Leistungsschalter die Fehleranzahl um eins. Wenn die Fehleranzahl dem Schwellenwert entspricht, wird die Bereitstellung als FAILED markiert.

Die folgende Tabelle bietet einige Beispiele.

Gewünschte Aufgabenanzahl Berechnung Threshold

1

3 <= 0.5 * 1 => 200
3 (der berechnete Wert liegt unter dem Minimum)

25

3 <= 0.5 * 25 => 200
13 (Der Wert wird aufgerundet)

400

3 <= 0.5 * 400 => 200
200

800

3 <= 0.5 * 800 => 200
200 (Der berechnete Wert ist größer als das Maximum)

Wenn der Schwellenwert beispielsweise 3 ist, startet der Schutzschalter mit der Fehleranzahl, die auf 0 gesetzt ist. Wenn eine Aufgabe den RUNNING Status nicht erreicht, erhöht der Auslöseschutzschalter die Anzahl der Fehler um eins. Wenn die Anzahl der Fehler gleich 3 ist, wird die Bereitstellung als FAILED markiert.

Weitere Beispiele zur Verwendung der Rollback-Option finden Sie unter Ankündigung des Amazon-ECS-Bereitstellungsschutzschalters.