Przeglądasz dokumentację Apigee Edge.
Przejdź do
Dokumentacja Apigee X. informacje.
Filmy
Więcej informacji o błędach 503 znajdziesz w filmach:
Wideo | Opis |
---|---|
Rozwiązywanie problemów z komunikatem 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 kodem stanu komunikat Service Unavailable (Usługa niedostępna) i kod błędu NoActiveTargets (NoActiveTargets). dla żądań serwera proxy interfejsu API.
Komunikat o błędzie
Wyświetli się następująca odpowiedź o błędzie:
HTTP/1.1 503 Service Unavailable
W odpowiedzi HTTP wyświetli się następujący komunikat o błędzie:
{ "fault": { "faultstring": "The Service is temporarily unavailable", "detail": { "errorcode": "messaging.adaptors.http.flow.NoActiveTargets" } } }
Możliwe przyczyny
Zwykle występuje odpowiedź HTTP 503 Service Unavailable (usługa niedostępna) z kodem błędu NoActiveTargets. gdy używasz co najmniej 1 serwera docelowego w konfiguracji docelowego punktu końcowego na serwerze proxy interfejsu API.
W tabeli poniżej znajdziesz możliwe przyczyny odpowiedzi 503 Service Unavailable (Usługa niedostępna – niedostępna) z kodem błędu NoActiveTargets:
Przyczyna | Opis | Kto może wykonywać czynności związane z rozwiązywaniem problemów |
---|---|---|
Serwer docelowy jest wyłączony | Serwer docelowy określony w konfiguracji docelowego punktu końcowego jest wyłączony. | Użytkownicy chmury publicznej i prywatnej Edge |
Błędy połączenia z powodu nieprawidłowego rozpoznawania nazw DNS | Rozpoznawanie nazw DNS serwera docelowego spowodowało nieprawidłowe adresy IP, które doprowadziły do błędów połączenia. | Użytkownicy Edge Private Cloud |
Błędy połączeń | Problemy z siecią lub połączeniem uniemożliwiają klientowi połączenie się z serwerem. | Użytkownicy Edge Private Cloud |
Nieprawidłowy alias hosta docelowego | Podany host serwera docelowego jest nieprawidłowy lub zawiera niechciane znaki (np. spację). | Użytkownicy chmury publicznej i prywatnej Edge |
Błędy uzgadniania połączenia SSL | Nie udało się nawiązać połączenia TLS/SSL między klientem a serwerem. | Użytkownicy chmury publicznej i prywatnej Edge |
Nieudane kontroli stanu | Kontrola stanu skonfigurowana pod kątem sprawdzania stanu serwera docelowego może z jakiegoś powodu zakończyć się niepowodzeniem. | Użytkownicy Edge Private Cloud |
Przyczyna: serwer docelowy jest wyłączony
Jeśli wszystkie serwery docelowe określone w konfiguracji docelowego punktu końcowego są wyłączone: otrzyma odpowiedź 503 Service Unavailable (usługa niedostępna) z kodem błędu NoActiveTargets.
Diagnostyka
- Określ nazwę serwera docelowego używanego w konkretnym docelowym punkcie końcowym Skonfiguruj serwer proxy interfejsu API z błędem, korzystając z jednego z tych sposobów:
- Jeśli istnieje 1 docelowy punkt końcowy, sprawdź ten konkretny docelowy punkt końcowy.
- Jeśli masz wiele docelowych punktów końcowych i nie wiesz, który z nich wyłączył serwer docelowy, wykonaj te czynności:
- Włącz sesję śledzenia, wykonaj wywołanie interfejsu API i odtwórz problem – 503 Service (Usługa niedostępna).
- Na podstawie logu czasu przejdź do sekcji Target Request Przepływ uruchomiony i określ nazwę docelowego punktu końcowego, jak pokazano poniżej:
- Gdy określisz docelowy punkt końcowy, pobierz nazwę serwera docelowego z konfiguracji docelowego punktu końcowego, jak pokazano w tym przykładzie:
<TargetEndpoint name="default">> <HTTPTargetConnection> <LoadBalancer> <Server name="demo-target" /> </LoadBalancer> <Path>/test</Path> </HTTPTargetConnection> </TargetEndpoint>
W powyższym przykładzie mamy jeden serwer docelowy o nazwie demo-target.
- Pobierz definicję każdego z serwerów docelowych używanych w docelowym punkcie końcowym za pomocą wywołania interfejsu Edge UI lub Edge API.
Interfejs Edge
Aby pobrać definicję za pomocą interfejsu Edge:
- Wybierz kolejno Administracja > Środowiska > Serwery docelowe.
- Wybierz konkretne środowisko, w którym występuje błąd.
- Wyszukaj nazwę konkretnego serwera docelowego, aby uzyskać jego definicję.
Jeśli na przykład wpiszesz nazwę serwera docelowego
demo-target
, zobaczysz jego definicję w następujący sposób:Zwróć uwagę, że element demo-target serwera docelowego ma alias hosta, port # i włączony protokół SSL. Sam serwer docelowy jest jednak wyłączony , na co wskazuje element ENABLED wyszarzony.
Interfejs Edge API
Aby uzyskać definicję przy użyciu interfejsu Edge API:
Użyj instrukcji Pobierz interfejs TargetServer API, aby uzyskać 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 parametr demo-target na serwerze docelowym jest wyłączony bo element IsEnabled ma wartość Fałsz.
Ponieważ serwer docelowy jest wyłączony, procesor komunikatów wysyła kod 503 Service niedostępna z kodem błędu NoActiveTargets od razu jako odpowiedź do klienta.
Rozdzielczość
Sprawdź, czy konkretne serwery docelowe używane w konfiguracji docelowego punktu końcowego interfejsu API Serwer proxy jest zawsze włączony.
Interfejs Edge
- Wybierz kolejno Administracja > Środowiska > Serwery docelowe.
- Wybierz konkretne środowisko, w którym występuje błąd.
- Wyszukaj nazwę konkretnego serwera docelowego, aby uzyskać jej definicję.
- Wybierz konkretny serwer docelowy i kliknij Edytuj.
- Zaznacz pole wyboru Włączone.
- Kliknij Aktualizuj.
Interfejs Edge API
Użyj instrukcji Zaktualizuj interfejs API serwera docelowego, aby zaktualizować definicję serwera docelowego i upewnić się, że Parametr IsEnabled ma wartość true w ładunku żądania interfejsu API, 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 będzie nadal występował, wejdź na Wymagane jest zbieranie informacji diagnostycznych.
Diagnozowanie problemów za pomocą monitorowania interfejsów API
Monitorowanie interfejsów API umożliwia wyizolowanie problemów szybko diagnozować problemy z błędami, wydajnością i opóźnieniami oraz ich źródła, na przykład aplikacji, serwerów proxy API, celów backendu czy platformy API.
Przeanalizuj przykładowy scenariusz
, który pokazuje, jak rozwiązywać problemy z kodem 5xx z interfejsami API przy użyciu monitorowania interfejsów API. Przykład:
możesz skonfigurować alert, aby otrzymywać powiadomienia, gdy: messaging.adaptors.http.flow.NoActiveTargets
przekracza określony próg.
Musi zbierać informacje diagnostyczne
Jeśli po wykonaniu powyższych czynności problem nie ustąpi, zbierz: informacje diagnostyczne. Skontaktuj się z nimi i udostępnij je zespołowi pomocy Apigee:
- Jeśli jesteś użytkownikiem chmury publicznej, podaj te informacje:
- Nazwa organizacji
- Nazwa środowiska
- Nazwa serwera proxy interfejsu API
- Wykonaj polecenie curl, aby odtworzyć błąd
- Plik śledzenia zawierający żądania z błędem 503 Service Unavailable (usługa niedostępna z kodem błędu NoActiveTargets)
- Jeśli jesteś użytkownikiem Private Cloud, podaj te informacje:
- Zaobserwowano pełny komunikat o błędzie
- Nazwa środowiska
- Pakiet serwera proxy interfejsu API
- Plik śledzenia zawierający żądania z błędem 503 Service Unavailable (usługa niedostępna z kodem błędu NoActiveTargets)
- Logi dostępu NGINX
(
/opt/apigee/var/log/edge-router/nginx/<org>~<env>.<port#>_access_log
) - Logi procesora wiadomości
(
/opt/apigee/var/log/edge-message-processor/logs/system.log
)