Zum Hauptinhalt springen

Health Probe

Standardmässig gilt in Deploio eine Anwendung als bereit, sobald der Webserver auf seinem Port zu lauschen beginnt. Wenn die Anwendung jedoch noch zusätzliche Startaufgaben benötigt (z. B. Daten laden, Migrationen ausführen), kann es vorkommen, dass Traffic zu früh eintrifft und temporäre Fehler verursacht. Eine benutzerdefinierte Health Probe URL behebt dieses Problem, indem die Plattform deine App regelmässig abfragt, bis sie sich selbst als healthy meldet - erst dann wird Traffic an sie weitergeleitet. Diese Probe ist optional. Wenn du sie nicht konfigurierst, verwendet die Plattform ihr standardmässiges health-Verhalten.

Was du konfigurieren kannst

Wir halten dies bewusst einfach - es gibt nur zwei Felder: Der Parameter --health-probe-period-seconds steuert, wie oft die Plattform die Health Probe gegen deine Anwendung ausführt. Er wird in Sekunden angegeben, mit einem Standardwert von 10 und einem minimal zulässigen Wert von 1. Der Parameter --health-probe-path gibt den HTTP-Pfad deiner Anwendung an, den die Plattform aufruft, um zu prüfen, ob der Service healthy ist - zum Beispiel /healthz. Zusammen ermöglichen dir diese Flags, festzulegen, wie häufig die health-Prüfung ausgeführt wird und welcher Endpoint verwendet wird, um anzuzeigen, dass die Anwendung bereit ist und ordnungsgemäss funktioniert.

note

Deine App steuert die Antwort. Während des Starts sollte sie einen nicht-erfolgreichen Status zurückgeben, um anzuzeigen, dass sie noch nicht bereit ist. Sobald die Applikation healthy ist, sollte sie einen erfolgreichen HTTP-Statuscode liefern. Jeder Code grösser oder gleich 200 und kleiner als 400 signalisiert Erfolg. Alle anderen Codes signalisieren einen Fehler.

Weitere Codebeispiele findest du im Repository deploio-examples. Zum Beispiel definiert die Beispiel-Go-Anwendung einen /healthz-Endpoint, der als einfache Demonstration einer benutzerdefinierten Health Probe dient.

Eine benutzerdefinierte Health Probe bei der App-Erstellung angeben

Du kannst eine Health Probe direkt bei der Erstellung einer Anwendung konfigurieren, indem du die entsprechenden flags im Befehl nctl create app verwendest:

nctl create app --health-probe-path="/healthz" --health-probe-period-seconds=9

Eine benutzerdefinierte Health Probe entfernen

Verwende diesen Befehl, wenn du eine zuvor konfigurierte Health Probe entfernen und zum standardmässigen health-Verhalten der Plattform zurückkehren möchtest:

nctl update app --delete-health-probe

Eine Health Probe in anderen Konfigurationsebenen angeben

Da Health Probes Teil der Konfiguration einer Deploio-Anwendung sind, kannst du sie auch auf anderen Konfigurationsebenen festlegen. Zum Beispiel kannst du eine Health Probe über die Git-Konfigurationsquelle .deploio.yaml definieren:

healthProbe:
httpGet:
path: /healthz
periodSeconds: 9

Beispiele

Weitere Codebeispiele findest du im deploio-examples-Repository. Zum Beispiel definiert die Beispiel-Go-Anwendung einen /healthz-Endpoint, der als einfache Demonstration einer benutzerdefinierten Health Probe dient.