Sie lesen gerade die Apigee Edge -Dokumentation.
Zur
Apigee X -Dokumentation. info
Videos
Weitere Informationen zu 503-Fehlern finden Sie in den folgenden Videos:
| Video | Beschreibung |
|---|---|
| 503 Service Unavailable – NoActiveTargets beheben | Informationen zu folgenden Themen:
|
Symptom
Die Clientanwendung erhält den HTTP-Antwortstatuscode 503 mit der Meldung Service Unavailable und dem Fehlercode NoActiveTargets für die API-Proxyanfragen.
Fehlermeldung
Sie sehen die folgende Fehlermeldung:
HTTP/1.1 503 Service Unavailable
In der HTTP-Antwort wird die folgende Fehlermeldung angezeigt:
{
"fault": {
"faultstring": "The Service is temporarily unavailable",
"detail": {
"errorcode": "messaging.adaptors.http.flow.NoActiveTargets"
}
}
}
Mögliche Ursachen
Die HTTP-Antwort 503 Service Unavailable mit dem Fehlercode NoActiveTargets wird in der Regel angezeigt wenn Sie in der Zielendpunktkonfiguration Ihres API-Proxys einen oder mehrere Zielserver verwenden.
In der folgenden Tabelle sind die möglichen Ursachen für die Antwort 503 Service Unavailable mit dem Fehlercode NoActiveTargets aufgeführt:
| Ursache | Beschreibung | Wer kann die Schritte zur Fehlerbehebung ausführen? |
|---|---|---|
| Zielserver ist deaktiviert | Der in der Zielendpunktkonfiguration angegebene Zielserver ist deaktiviert. | Edge Public und Private Cloud-Nutzer |
| Verbindungsfehler aufgrund falscher DNS-Auflösung | Die DNS-Auflösung des Zielservers hat zu fehlerhaften IP-Adressen geführt, die zu Verbindungsfehlern führen. | Edge Private Cloud-Nutzer |
| Verbindungsfehler | Netzwerk- oder Verbindungsprobleme verhindern, dass der Client eine Verbindung zum Server herstellt. | Edge Private Cloud-Nutzer |
| Falscher Zielhost-Alias | Der angegebene Zielserverhost ist falsch oder enthält unerwünschte Zeichen (z. B. ein Leerzeichen). | Edge Public und Private Cloud-Nutzer |
| Fehler bei SSL-Handshake | Der TLS/SSL-Handshake zwischen Client und Server ist fehlgeschlagen. | Edge Public und Private Cloud-Nutzer |
| Fehler bei der Systemdiagnose | Die Systemdiagnosen, die für die Überprüfung des Status des Zielservers konfiguriert sind, können aus irgendeinem Grund fehlschlagen. | Edge Private Cloud-Nutzer |
Ursache: Zielserver ist deaktiviert
Wenn alle in der Zielendpunktkonfiguration angegebenen Zielserver deaktiviert sind, erhalten Sie die Antwort 503 Service Unavailable mit dem Fehlercode NoActiveTargets.
Diagnose
- Ermitteln Sie den Namen des Zielservers, der in der spezifischen Zielendpunkt Konfiguration des fehlerhaften API-Proxys verwendet wird, auf eine der folgenden Arten:
- Wenn es nur einen Zielendpunkt gibt, prüfen Sie diesen.
- Wenn es mehrere Zielendpunkte gibt und Sie nicht sicher sind, bei welchem der Zielserver deaktiviert ist, gehen Sie so vor:
- Aktivieren Sie die Trace-Sitzung, führen Sie den API-Aufruf aus und reproduzieren Sie das Problem – 503 Service Unavailable.
- Gehen Sie im Trace zu Target Request Flow Started und ermitteln Sie den Namen des Zielendpunkts wie unten gezeigt:
- Nachdem Sie den Zielendpunkt identifiziert haben, rufen Sie den Namen des Zielservers aus der Zielendpunktkonfiguration ab, wie im folgenden Beispiel gezeigt:
<TargetEndpoint name="default">> <HTTPTargetConnection> <LoadBalancer> <Server name="demo-target" /> </LoadBalancer> <Path>/test</Path> </HTTPTargetConnection> </TargetEndpoint>Im obigen Beispiel gibt es einen einzelnen Zielserver mit dem Namen demo-target.
- Rufen Sie die Definition für jeden der in der Zielendpunktkonfiguration verwendeten Zielserver über die Edge-Benutzeroberfläche oder einen Edge-API-Aufruf ab.
Edge-Benutzeroberfläche
So rufen Sie die Definition über die Edge-Benutzeroberfläche ab:
- Gehen Sie zu Admin > Umgebungen > Zielserver.
- Wählen Sie die Umgebung aus, in der der Fehler auftritt.
- Suchen Sie nach dem Namen des Zielservers, um die Definition des Zielservers abzurufen.
Geben Sie beispielsweise den Namen des Zielservers
demo-targetein. Die Definition wird wie unten gezeigt angezeigt:
Hier sehen Sie, dass der Zielserver demo-target einen Host-Alias und eine Portnummer hat und SSL aktiviert ist. Der Zielserver selbst ist jedoch deaktiviert , was daran zu erkennen ist, dass das Element ENABLED ausgegraut ist.
Edge API
So rufen Sie die Definition über die Edge API ab:
Verwenden Sie die Get TargetServer API, um die Definition des Zielservers abzurufen.
Ausgabe der Zielserverdefinition
<TargetServer name="demo-target"> <Host>demo-target.apigee.net</Host> <Port>443</Port> <IsEnabled>false</IsEnabled> <SSLInfo> <Enabled>true</Enabled> </SSLInfo> </TargetServer>Die Apigee API-Ausgabe zeigt, dass der Zielserver demo-target deaktiviert ist, da das Element IsEnabled auf „false“ gesetzt ist.
Da der Zielserver deaktiviert ist, sendet der Message Processor sofort 503 Service Unavailable mit dem Fehlercode NoActiveTargets als Antwort an den Client.

Auflösung
Achten Sie darauf, dass die in der Zielendpunktkonfiguration Ihres API Proxys verwendeten Zielserver immer aktiviert sind.
Edge-Benutzeroberfläche
- Gehen Sie zu Admin > Umgebungen > Zielserver.
- Wählen Sie die Umgebung aus, in der der Fehler auftritt.
- Suchen Sie nach dem Namen des Zielservers, um die Definition abzurufen.
- Wählen Sie den Zielserver aus und klicken Sie dann auf Bearbeiten.
- Klicken Sie das Kästchen Aktiviert an.
- Klicken Sie auf Aktualisieren.
Edge API
Verwenden Sie die Update a Target Server API, um die Definition des Zielservers zu aktualisieren und sicherzustellen, dass IsEnabled in der Anfrage-Nutzlast der API auf true gesetzt ist, wie unten gezeigt:
<TargetServer name="demo-target">
<Host>demo-target.apigee.net</Host>
<Port>443</Port>
<IsEnabled>true</IsEnabled>
<SSLInfo>
<Enabled>true</Enabled>
</SSLInfo>
</TargetServer>
Wenn das Problem weiterhin besteht, lesen Sie unten den Abschnitt Erfassen von Diagnoseinformationen erforderlich.
Probleme mit API-Monitoring diagnostizieren
API Monitoring ermöglicht Ihnen, Problembereiche schnell zu isolieren, um Fehler, Leistungs- und Latenzprobleme sowie deren Quelle wie Entwickler-Apps, API-Proxys, Back-End-Ziele oder die API-Plattform zu diagnostizieren.
Sehen Sie sich ein Beispielszenario an
in dem gezeigt wird, wie Sie 5xx-Probleme mit Ihren APIs mithilfe von API-Monitoring beheben. Sie können beispielsweise
eine Benachrichtigung einrichten, die Sie benachrichtigt, wenn die Anzahl der messaging.adaptors.http.flow.NoActiveTargets
Fehler einen bestimmten Grenzwert überschreitet.
Erfassen von Diagnoseinformationen erforderlich
Wenn das Problem auch nach Befolgen der obigen Anweisungen weiterhin besteht, sammeln Sie die folgenden Diagnoseinformationen. Wenden Sie sich an den Apigee-Support und teilen Sie ihm die Informationen mit:
- Wenn Sie ein Public Cloud-Nutzer sind, geben Sie die folgenden Informationen an:
- Name der Organisation
- Umgebungsname
- Name des API-Proxys
- Vollständiger cURL-Befehl zum Reproduzieren des Fehlers
- Trace-Datei mit den Anfragen mit dem Fehler „503 Service Unavailable“ und dem Fehlercode „NoActiveTargets“
- Wenn Sie ein Private Cloud-Nutzer sind, geben Sie die folgenden Informationen an:
- Vollständige Fehlermeldung
- Umgebungsname
- API-Proxy-Bundle
- Trace-Datei mit den Anfragen mit dem Fehler „503 Service Unavailable“ und dem Fehlercode „NoActiveTargets“
- NGINX-Zugriffsprotokolle
(
/opt/apigee/var/log/edge-router/nginx/<org>~<env>.<port#>_access_log) - Message Processor-Protokolle
(
/opt/apigee/var/log/edge-message-processor/logs/system.log)