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.
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.