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.
Ermitteln Sie den Zustand von Amazon ECS-Aufgaben mithilfe von Container-Zustandsprüfungen
Wenn Sie eine Aufgabendefinition erstellen, können Sie eine Zustandsprüfung für Ihre Container konfigurieren. Zustandsprüfung sind Befehle, die lokal in einem Container ausgeführt werden und den Zustand und die Verfügbarkeit von Anwendungen überprüfen.
Der Amazon-ECS-Container-Agent überwacht die in der Aufgabendefinition angegebenen Zustandsprüfungen und erstellt Berichte darüber. Amazon ECS überwacht keine Docker-Zustandsprüfungen, die in ein Container-Image eingebettet, aber nicht in der Container-Definition angegeben sind. Parameter für die Zustandsprüfung, die in einer Container-Definition angegeben sind, überschreiben Docker-Zustandsprüfungen, die im Container-Image vorhanden sind.
Wenn in einer Aufgabendefinition eine Zustandsprüfung definiert ist, führt der Container die Zustandsprüfung innerhalb des Containers aus und wertet dann den Exit-Code aus, um den Zustand der Anwendung zu ermitteln.
Die Zustandsprüfung besteht aus den folgenden Parametern:
-
Befehl – Der vom Container ausgeführte Befehl, um zu bestimmen, ob er fehlerfrei ist. Das Zeichenfolge-Array kann mit
CMDbeginnen, um die Befehlsargumente direkt auszuführen, oder mitCMD-SHELL, um den Befehl mit der Standard-Shell des Containers auszuführen. Verwenden SieCMD-SHELL, wenn Sie Shell-Features wie Pipes, Umleitungen, Befehlsketten oder die Erweiterung von Umgebungsvariablen benötigen.CMD-SHELLermöglicht es Ihnen beispielsweise, Befehle wiecurl -f http://localhost/ || exit 1zu verwenden, bei denen die Shell den||-Operator interpretiert. Verwenden SieCMDfür einfache Befehle, für die keine Shell-Interpretation erforderlich ist. -
Intervall – Der Zeitraum (in Sekunden) zwischen den Zustandsprüfungen.
-
Timeout – Der Zeitraum (in Sekunden), der angibt, wie lange gewartet wird, bis eine Zustandsprüfung erfolgreich ist, bevor sie als fehlgeschlagen betrachtet wird.
-
Wiederholungsversuche – Wie oft eine fehlgeschlagene Zustandsprüfung wiederholt werden soll, bevor der Container als fehlerhaft betrachtet wird.
-
Startzeitraum – Der optionale Übergangszeitraum, der angibt, wie lange der Container Zeit für einen Bootstrap hat, bevor fehlgeschlagene Zustandsprüfungen der maximalen Anzahl an Wiederholungen angerechnet werden.
Wenn eine Zustandsprüfung innerhalb der
startPerioderfolgreich ist, wird die Container als fehlerfrei betrachtet und alle nachfolgenden Ausfälle werden bei der maximal zulässigen Anzahl von Wiederholungen berücksichtigt.
Informationen zur Angabe einer Zustandsprüfung in einer Aufgabendefinition finden Sie unter Gesundheitscheck.
Im Folgenden werden die möglichen Zustandwerte für einen Container beschrieben:
-
HEALTHY– Die Container-Zustandsprüfung wurde erfolgreich bestanden. -
UNHEALTHY– Die Container-Zustandsprüfung ist fehlgeschlagen. -
UNKNOWN– Die Container-Zustandsprüfung wird ausgewertet, es ist keine Container-Zustandsprüfung definiert oder Amazon ECS verfügt nicht über den Zustandstatus des Containers.
Die Befehle zur Zustandsprüfung werden auf dem Container ausgeführt. Daher müssen Sie die Befehle in das Container-Image aufnehmen.
Die Zustandsprüfung stellt über die Loopback-Schnittstelle des Containers unter localhost oder 127.0.0.1 eine Verbindung zur Anwendung her Der Beendigungscode 0 bedeutet eine erfolgreiche Ausführung, bei einem Beendigungscode ungleich Null ist ein Fehler aufgetreten.
Berücksichtigen Sie bei der Verwendung von Container-Zustandsprüfungen die folgenden Punkte:
-
Container Zustandsprüfungen erfordern Version 1.17.0 oder höher des Amazon-ECS-Container-Agenten.
-
Container-Zustandsprüfungen werden für Fargate-Aufgaben unterstützt, wenn Sie die Linux-Plattformversion
1.1.0oder höher oder die Windows-Plattformversion1.1.0oder höher verwenden
So bestimmt Amazon ECS den Zustand von Aufgaben
Container, die essenziell sind und in der Aufgabendefinition den Befehl zur Zustandsprüfung enthalten, sind die einzigen, die bei der Bestimmung des Aufgabenzustands berücksichtigt werden.
Die folgenden Regeln werden der Reihe nach evaluiert:
-
Wenn der Status eines essenziellen Containers
UNHEALTHYist, dann ist der AufgabenstatusUNHEALTHY. -
Wenn der Status eines essenziellen Containers
UNKNOWNist, dann ist der AufgabenstatusUNKNOWN. -
Wenn der Status aller essenziellen Containers
HEALTHYist, dann ist der AufgabenstatusHEALTHY.
Betrachten Sie das folgende Beispiel für den Zustand einer Aufgabe mit zwei essenziellen Containern.
| Zustand von Container 1 | Zustand von Container 2 | Zustand der Aufgabe |
|---|---|---|
UNHEALTHY |
UNKNOWN |
UNHEALTHY |
UNHEALTHY |
HEALTHY |
UNHEALTHY |
HEALTHY |
UNKNOWN |
UNKNOWN |
HEALTHY |
HEALTHY |
HEALTHY |
Betrachten Sie das folgende Beispiel für den Zustand einer Aufgabe mit 3 Containern.
| Zustand von Container 1 | Zustand von Container 2 | Zustand von Container 3 | Zustand der Aufgabe |
|---|---|---|---|
UNHEALTHY |
UNKNOWN |
UNKNOWN |
UNHEALTHY |
UNHEALTHY |
UNKNOWN |
HEALTHY |
UNHEALTHY |
UNHEALTHY |
HEALTHY |
HEALTHY |
UNHEALTHY |
HEALTHY |
UNKNOWN |
HEALTHY |
UNKNOWN |
HEALTHY |
UNKNOWN |
UNKNOWN |
UNKNOWN |
HEALTHY |
HEALTHY |
HEALTHY |
HEALTHY |
So sind Zustandsprüfungen von Agent-Verbindungsabbrüchen betroffen
Wenn der Amazon-ECS-Container-Agent vom Amazon-ECS-Service getrennt wird, führt es nicht dazu, dass ein Container in einen UNHEALTHY-Status wechselt. Dies ist beabsichtigt, um sicherzustellen, dass Container auch bei Neustarts der Agenten oder bei vorübergehender Nichtverfügbarkeit weiterhin ausgeführt werden. Der Status der Zustandsprüfung ist die Antwort „zuletzt gehört von“ des Amazon-ECS-Agenten. Wenn der Container also vor dem Trennen als HEALTHY berücksichtigt wurde, bleibt dieser Status bestehen, bis der Agent wieder eine Verbindung herstellt und eine weitere Zustandsprüfung erfolgt. Es werden keine Annahmen über den Status der Zustandsprüfungen der Container getroffen.