Ich habe eine Pause api auf Elastic Beanstalk, die gut funktioniert. Alles, was die Anwendung angeht, läuft gut und funktioniert wie erwartet.Elastische Beanstalk deaktivieren Gesundheit Zustand ändern basierend auf 4xx Antworten
Die Anwendung ist eine Rest-API, die verwendet wird, um verschiedene Benutzer zu suchen.
example url: http://service.com/user?uid=xxxx&anotherid=xxxx
Wenn ein Benutzer mit entweder IDs gefunden wird, antwortet der api mit 200 OK
, wenn nicht, mit 404 Not Found
gemäß reagiert. HTTP/1.1
Statuscode-Defensionen.
Es ist nicht ungewöhnlich für unsere api 404 Not Found
auf viele Anfragen zu beantworten, und das elastische Bohnenstengel überträgt unsere Umwelt aus OK
in Warning
oder sogar in Degraded
, weil dieser. Und es sieht so aus, als ob nginx
die Verbindung zu der Anwendung aufgrund dieses verschlechterten Zustands abgelehnt hat. (sieht aus wie es einen Grenzwert von 30% + in warning
und 50% + in degraded
Staaten hat. Dies ist ein Problem, weil die Anwendung tatsächlich wie erwartet funktioniert, aber die Standardeinstellungen von Elastic Beanstalk ist es ist ein Problem, wenn es ist wirklich nicht.
Kennt jemand eine Möglichkeit, den Schwellenwert der 4xx Warnungen und Zustandsübergänge in EB zu bearbeiten, oder sie vollständig deaktivieren?
oder soll ich wirklich eine Symptom-Behandlung tun und aufhören mit 404 Not Found
auf Ein Anruf wie dieser? (Ich mag diese Option wirklich nicht)
Sie sollten einen eigenen Endpunkt für Gesundheits-Check bieten. Dieser Endpunkt überprüft alle Komponenten Ihres Systems (z. B. Datenbank-Ping, externes System-Ping usw.) und reagiert entsprechend dem Status. Verwenden Sie den Benutzerendpunkt nicht dafür, da Sie sehen, dass dies keine gute Darstellung des Systemzustands darstellt. – cdelmas
Das Problem besteht darin, dass elastisches Bohnenranking alle Anwendungsantworten im Lastenausgleich überwacht. Und wenn es eine Schwelle von 30 +% 4xx-Status erreicht, ändert Bohnenstengel meine Anwendungen Zustand, auch wenn der/Gesundheit Endpunkt noch gibt 200 OK –
Eine Möglichkeit ist, die Umwelt vor Verbesserte auf Basis der Gesundheitsberichterstattung zu migrieren, die nicht-Statuscodes nicht überwacht - - Dies ist jedoch weniger empfehlenswert. Die andere Option würde wahrscheinlich erfordern, dass der zugrunde liegende EB-Health-Check-Daemon, der auf den EB-Servern läuft, gepatcht wird. –