Wyświetlasz dokumentację Apigee Edge.
Otwórz dokumentację
Apigee X. info
Filmy
Więcej informacji o błędach 503 znajdziesz w tych filmach:
| Wideo | Opis |
|---|---|
| Rozwiązywanie problemów i usuwanie błędu 503: Usługa niedostępna – NoActiveTargets | Dowiedz się więcej o tych kwestiach:
|
Krótki opis problemu
Aplikacja kliencka otrzymuje kod stanu odpowiedzi HTTP 503 z komunikatem Usługa niedostępna i kodem błędu NoActiveTargets w przypadku żądań do proxy interfejsu API.
Komunikat o błędzie
Zobaczysz tę odpowiedź o błędzie:
HTTP/1.1 503 Service Unavailable
W odpowiedzi HTTP zobaczysz ten komunikat o błędzie:
{
"fault": {
"faultstring": "The Service is temporarily unavailable",
"detail": {
"errorcode": "messaging.adaptors.http.flow.NoActiveTargets"
}
}
}
Możliwe przyczyny
Odpowiedź HTTP 503: Usługa niedostępna z kodem błędu NoActiveTargets jest zwykle obserwowana gdy w konfiguracji punktu końcowego docelowego w proxy interfejsu API używasz co najmniej 1 serwera docelowego.
W tabeli poniżej znajdziesz możliwe przyczyny odpowiedzi 503: Usługa niedostępna z kodem błędu NoActiveTargets :
| Przyczyna | Opis | Kto może wykonać czynności rozwiązywania problemów |
|---|---|---|
| Serwer docelowy jest wyłączony | Serwer docelowy określony w konfiguracji punktu końcowego docelowego jest wyłączony. | Użytkownicy chmury publicznej i prywatnej Edge |
| Błędy połączenia spowodowane nieprawidłowym rozpoznawaniem nazw DNS | Rozpoznawanie nazw DNS serwera docelowego spowodowało nieprawidłowe adresy IP, które prowadzą do błędów połączenia. | Użytkownicy chmury prywatnej Edge |
| Błędy połączenia | Problemy z siecią lub łącznością uniemożliwiają klientowi połączenie z serwerem. | Użytkownicy chmury prywatnej Edge |
| Nieprawidłowy alias hosta docelowego | Określony host serwera docelowego jest nieprawidłowy lub zawiera niepożądane znaki (np. spację). | Użytkownicy chmury publicznej i prywatnej Edge |
| Błędy uzgadniania SSL | Nie udało się uzgodnić protokołu TLS/SSL między klientem a serwerem. | Użytkownicy chmury publicznej i prywatnej Edge |
| Błędy kontroli stanu | Kontrole stanu skonfigurowane do sprawdzania stanu serwera docelowego mogą się nie powieść z jakiegoś powodu. | Użytkownicy chmury prywatnej Edge |
Przyczyna: serwer docelowy jest wyłączony
Jeśli wszystkie serwery docelowe określone w konfiguracji punktu końcowego docelowego są wyłączone, otrzymasz odpowiedź 503: Usługa niedostępna z kodem błędu NoActiveTargets.
Diagnostyka
- Określ nazwę serwera docelowego używanego w konkretnej konfiguracji punktu końcowego docelowego w przypadku proxy interfejsu API, które nie działa, korzystając z jednej z tych metod:
- Jeśli jest tylko 1 punkt końcowy docelowy, sprawdź go.
- Jeśli jest wiele punktów końcowych docelowych i nie masz pewności, który z nich ma wyłączony serwer docelowy, wykonaj te czynności:
- Włącz sesję śledzenia, wykonaj wywołanie interfejsu API i odtwórz problem – 503: Usługa niedostępna.
- W śledzeniu otwórz Rozpoczęto przepływ żądania docelowego i określ nazwę punktu końcowego docelowego, jak pokazano poniżej:
- Po zidentyfikowaniu punktu końcowego docelowego pobierz nazwę serwera docelowego używanego w konfiguracji punktu końcowego docelowego, jak pokazano w przykładzie poniżej:
<TargetEndpoint name="default">> <HTTPTargetConnection> <LoadBalancer> <Server name="demo-target" /> </LoadBalancer> <Path>/test</Path> </HTTPTargetConnection> </TargetEndpoint>W powyższym przykładzie jest 1 serwer docelowy o nazwie demo-target.
- Pobierz definicję każdego serwera docelowego używanego w docelowym punkcie końcowym za pomocą interfejsu Edge lub wywołania interfejsu API Edge.
Interfejs Edge
Aby pobrać definicję za pomocą interfejsu Edge:
- Otwórz Administracja > Środowiska > Serwery docelowe.
- Wybierz środowisko, w którym występuje błąd.
- Wyszukaj nazwę serwera docelowego, aby uzyskać jego definicję.
Na przykład wpisz nazwę serwera docelowego
demo-target. Zobaczysz jego definicję, jak pokazano poniżej:
Zwróć uwagę, że serwer docelowy demo-target ma alias hosta, numer portu i włączony protokół SSL. Jednak sam serwer docelowy jest wyłączony , co jest oznaczone przez wyszarzony element ENABLED.
Interfejs Edge API
Aby pobrać definicję za pomocą interfejsu Edge API:
Użyj interfejsu Get TargetServer API, aby pobrać definicję serwera docelowego.
Dane wyjściowe definicji serwera docelowego
<TargetServer name="demo-target"> <Host>demo-target.apigee.net</Host> <Port>443</Port> <IsEnabled>false</IsEnabled> <SSLInfo> <Enabled>true</Enabled> </SSLInfo> </TargetServer>Dane wyjściowe interfejsu Apigee API wskazują, że serwer docelowy demo-target jest wyłączony , ponieważ element IsEnabled ma wartość false.
Ponieważ serwer docelowy jest wyłączony, procesor komunikatów natychmiast wyśle do klienta odpowiedź 503: Usługa niedostępna z kodem błędu NoActiveTargets.

Rozdzielczość
Upewnij się, że serwery docelowe używane w konfiguracji punktu końcowego docelowego w proxy interfejsu API są zawsze włączone.
Interfejs Edge
- Otwórz Administracja > Środowiska > Serwery docelowe.
- Wybierz środowisko, w którym występuje błąd.
- Wyszukaj nazwę serwera docelowego, aby uzyskać jego definicję.
- Wybierz serwer docelowy i kliknij Edytuj.
- Zaznacz pole wyboru Włączone.
- Kliknij Aktualizuj.
Interfejs Edge API
Użyj interfejsu Update a Target Server API, aby zaktualizować definicję serwera docelowego i upewnić się, że w treści żądania interfejsu API element IsEnabled ma wartość true, jak pokazano poniżej:
<TargetServer name="demo-target">
<Host>demo-target.apigee.net</Host>
<Port>443</Port>
<IsEnabled>true</IsEnabled>
<SSLInfo>
<Enabled>true</Enabled>
</SSLInfo>
</TargetServer>
Jeśli problem nadal występuje, przejdź do sekcji Informacje diagnostyczne, które należy zebrać.
Diagnozowanie problemów za pomocą monitorowania interfejsu API
Monitorowanie interfejsu API umożliwia szybkie izolowanie obszarów problemowych w celu diagnozowania błędów, problemów z wydajnością i opóźnieniami oraz ich źródła, takiego jak aplikacje deweloperów, proxy interfejsu API, cele backendu lub platforma interfejsu API.
Zapoznaj się z przykładowym scenariuszem
który pokazuje, jak rozwiązywać problemy z kodem 5xx w interfejsach API za pomocą monitorowania interfejsu API. Możesz na przykład
skonfigurować alert, aby otrzymywać powiadomienia, gdy liczba messaging.adaptors.http.flow.NoActiveTargets
błędów przekroczy określony próg.
Informacje diagnostyczne, które należy zebrać
Jeśli problem nadal występuje po wykonaniu powyższych instrukcji, zbierz te informacje diagnostyczne. Skontaktuj się z zespołem pomocy Apigee i udostępnij mu te informacje:
- Jeśli korzystasz z chmury publicznej, podaj te informacje:
- Nazwa organizacji
- Nazwa środowiska
- Nazwa proxy interfejsu API
- Pełne polecenie curl do odtworzenia błędu
- Plik śledzenia zawierający żądania z błędem 503: Usługa niedostępna z kodem błędu NoActiveTargets
- Jeśli korzystasz z chmury prywatnej, podaj te informacje:
- Pełny komunikat o błędzie
- Nazwa środowiska
- Pakiet proxy interfejsu API
- Plik śledzenia zawierający żądania z błędem 503: Usługa niedostępna z kodem błędu NoActiveTargets
- Dzienniki dostępu NGINX
(
/opt/apigee/var/log/edge-router/nginx/<org>~<env>.<port#>_access_log) - Dzienniki procesora komunikatów
(
/opt/apigee/var/log/edge-message-processor/logs/system.log)