Gdy żądania do interfejsu API są wysyłane przez Apigee Edge, routery komponentów Apigee Edge i procesory wiadomości lub serwery backendu mogą zwracać błędy aplikacjom klienckim.
Błędy z procesora wiadomości
Procesor wiadomości to podstawowy komponent Apigee Edge, który przetwarza zasady i wchodzi w interakcje z serwerami backendu. Może zwracać błędy, jeśli wykryje problemy, takie jak:
Problemy z połączeniem sieciowym, błędy uzgadniania TLS, niedostępność serwera backendu, brak odpowiedzi podczas komunikacji z serwerem backendu
Zawiera komunikat o błędzie opisujący jego możliwą przyczynę
errorcode
Kod błędu (zwany też kodem błędu) związany z błędem
Katalog błędów środowiska wykonawczego
Ten katalog błędów zawiera wszystkie informacje o kodach błędów środowiska wykonawczego (w przypadku błędów niezwiązanych z zasadami), które są zwracane przez komponent procesora Apigee Edge Edge. Zawiera on te informacje o każdym kodzie błędu:
Kod stanu HTTP
Komunikat o błędzie
Możliwe przyczyny błędu
wszelkie powiązane specyfikacje HTTP lub limity produktów;
Poradniki i filmy zawierające instrukcje diagnozowania przyczyny błędu oraz skuteczne rozwiązania, które możesz zastosować, aby samodzielnie rozwiązać problem (jeśli są dostępne).
Popraw, który możesz zastosować, aby samodzielnie naprawić błąd
Aby wyświetlić powyższe informacje dotyczące konkretnego kodu błędu, użyj pola Wyszukaj poniżej. Kod stanu lub dowolne treści możesz wyszukać w dowolnym polu w tabeli.
searchSieć wyszukiwania
Kod błędu
Opis
Napraw
flow.*
flow.APITimedOut
Kod stanu HTTP:
504 Gateway Timeout
Komunikat o błędzie:
API timed out
Możliwa przyczyna:
Ten błąd występuje, jeśli:
Serwer backendu nie odpowiada po upływie limitu czasu ustawionego przez właściwość api.timeout dla określonego serwera proxy interfejsu API.
Zasady są długo przetwarzane z powodu operacji wymagających dużej mocy obliczeniowej, dużego obciążenia lub niskiej wydajności.
Uwaga: ten poradnik zawiera instrukcje rozwiązywania problemów z kodem błędu messaging.adaptors.http.flow.GatewayTimeout, ale możesz go też użyć do rozwiązania problemów z kodem błędu flow.APITimedOut.
Kodowanie określone w nagłówku odpowiedzi HTTP Content-Encoding serwera docelowego lub serwera backendu jest prawidłowe i
obsługiwane przez Apigee Edge,
ALE
Format danych przesłanych przez backend lub serwer docelowy jako część odpowiedzi HTTP nie pasuje do formatu kodowania określonego w nagłówku Content-Encoding
Komunikat i format błędu mogą się różnić w zależności od implementacji serwera backendu.
Możliwa przyczyna:
Ten błąd występuje, gdy serwer zaplecza odpowiada kodem stanu 504 do Apigee Edge.
Uwaga: kod błędu
messaging.adaptors.http.flow.ErrorResponseCode nie jest zwracany
jako część komunikatu o błędzie wysyłanego do aplikacji klienckich. Dzieje się tak, ponieważ ten kod błędu jest ustawiany przez Apigee Edge, gdy serwer backendowy odpowiada z błędem i dowolnym z kodów stanu 4XX lub 5XX. Ten kod błędu możesz wyświetlić w usłudze API Monitoring, logach dostępu NGINX lub analitycznej bazie danych.
Ten błąd występuje, jeśli aplikacja kliencka nie przekazuje nagłówka Content-Length w ramach żądań HTTP POST i PUT wysyłanych do Apigee Edge.
Uwaga: żądań, które zakończyły się niepowodzeniem z powodu tego błędu, nie można zarejestrować w narzędziu Śledzenie, ponieważ procesor wiadomości wykonuje tę weryfikację na bardzo wczesnym etapie, znacznie wcześniej niż przetworzenie żądania i wykonywanie jakichkolwiek zasad w interfejsie API Proxy.
Upewnij się, że aplikacja kliencka zawsze przekazuje nagłówek Content-Length w ramach żądań HTTP POST i PUT wysyłanych do Apigee Edge. Na przykład:
curl -X POST https://HOSTALIAS/PATH -d '{"name": "abc"}' -H "Content-Length: 15"
Nawet jeśli w żądaniach POST i PUT przekazujesz pusty ładunek, upewnij się, że nagłówek Content-Length: 0 jest przekazywany. Na przykład:
curl -X POST https://HOSTALIAS/PATH -H "Content-Length: 0"
messaging.adaptors.http.flow.NoActiveTargets
Kod stanu HTTP:
503 Service Unavailable
Komunikat o błędzie:
The Service is temporarily unavailable
Możliwa przyczyna:
Ten błąd występuje w jednym z tych scenariuszy, jeśli używasz
TargetServer w Apigee Edge:
Niewłaściwe rozpoznawanie nazw DNS hosta serwera backendu przez niestandardowy serwer autoryzacji spowodowało wystąpienie nieprawidłowych adresów IP, co prowadziło do błędów połączenia.
Błędy limitu czasu połączenia z powodu:
Ograniczenie zapory sieciowej na serwerze backendu uniemożliwia Apigee Edge nawiązanie połączenia z serwerem backendu.
Problemy z połączeniem sieciowym między Apigee Edge a serwerem backendu.
Host podany w sekcji TargetServer jest nieprawidłowy lub zawiera niepożądane znaki (np. spację).
Ten błąd występuje, gdy procesor wiadomości Apigee Edge nie otrzyma ładunku żądania z aplikacji klienta w
okresie limitu czasu operacji wejścia/wyjścia skonfigurowanym w komponencie procesora wiadomości.
Niewłaściwe rozpoznawanie nazw DNS hosta serwera backendu przez niestandardowy serwer autoryzacji spowodowało wystąpienie nieprawidłowych adresów IP, co prowadziło do błędów połączenia.
Błędy związane z upływem czasu oczekiwania na połączenie:
Ograniczenie zapory sieciowej na serwerze backendu uniemożliwia połączenie Apigee Edge z serwerem backendu.
Problemy z połączeniem sieciowym między Apigee Edge a serwerem zaplecza.
Host serwera docelowego podany w sekcji Punkt końcowy docelowy jest nieprawidłowy lub zawiera niepożądane znaki (np. spację).
Ten błąd może też wystąpić, jeśli serwer backendu przedwcześnie zamknie połączenie, gdy procesor wiadomości nadal wysyła ładunek żądania do serwera backendu.
Ten błąd występuje, gdy Apigee Edge nie może przekierować żądania do żadnego z adresów docelowych, ponieważ:
Brak warunku reguły ścieżki (<RouteRule>), który pasuje do żądania w serwerze proxy
ORAZ
W ProxyEndpoint nie ma zdefiniowanej reguły trasy domyślnej (np. <RouteRule> bez żadnego warunku).
Napraw
Aby rozwiązać ten problem:
Sprawdź reguły trasy zdefiniowane w ProxyEndpoint i zmodyfikuj je, aby mieć pewność, że istnieje co najmniej 1 warunek reguły trasy, który pasuje do Twojego żądania.
Jeśli masz wiele reguł trasy, warto zdefiniować domyślną regułę trasy bez warunków.
Sprawdź, czy domyślna reguła trasy jest zawsze zdefiniowana jako ostatnia na liście tras warunkowych, ponieważ reguły są oceniane od góry w punkcie końcowym w punkcie końcowym.
Więcej informacji o definiowaniu warunków <RouteRule> w punkcie końcowym serwera proxy znajdziesz w opisie
celów warunkowych.
messaging.runtime.SenseRaiseFault
Kod stanu HTTP:
403 Forbidden
Komunikat o błędzie:
Sense Fault
Możliwa przyczyna:
Ten błąd występuje, gdy żądanie interfejsu API jest wysyłane z określonego adresu IP klienta, który jest blokowany zgodnie z zasadami Apigee Sense.
Jeśli konkretny adres IP klienta nie jest blokowany, ale nadal występuje ten błąd, skontaktuj się z zespołem pomocy Apigee Edge.
protocol.http.* - Caused due to bad request
protocol.http.BadFormData
Kod stanu HTTP:
500 Internal Server Error
Komunikat o błędzie:
Bad Form Data
Możliwa przyczyna:
Ten błąd występuje tylko wtedy, gdy są spełnione wszystkie te warunki:
Żądanie HTTP wysłane przez klienta do Apigee Edge zawiera:
Content-Type: application/x-www-form-urlencoded,
i
dane formularza zawierające znak procenta (%) lub znak procenta (%) poprzedzony nieprawidłowymi znakami szesnastkowymi, które są niedozwolone zgodnie z
formularzami – sekcja 17.13.4.
W ramach przepływu żądań zapora API w Apigee Edge odczytuje parametry konkretnego formularza zawierające znaki niedozwolone za pomocą zasad ExtractVariables lub AssignMessage.
Ten błąd występuje, gdy określony nagłówek HTTP, który nie może mieć duplikatów w Apigee Edge, pojawia się więcej niż raz z tymi samymi lub różnymi wartościami w ramach żądania HTTP wysłanego przez aplikację kliencką do Apigee Edge.
Upewnij się, że żądanie HTTP wysłane przez aplikację kliencką do Apigee Edge zawsze zawiera prawidłową nazwę nagłówka zgodnie z
RFC 7230, sekcja 3.2: Pola nagłówka.
protocol.http.HeaderNameWithNonAsciiChar
Kod stanu HTTP:
400 Bad Request
Komunikat o błędzie:
Header {header_name} contains non ascii character {character}
Możliwa przyczyna:
Ten błąd występuje, gdy nazwa nagłówka wysłana w ramach żądania HTTP przez aplikację kliencką do Apigee Edge zawiera znaki spoza zestawu ASCII.
Header {header_name} contains invalid character {character}
Możliwa przyczyna:
Ten błąd występuje, jeśli nazwa nagłówka wysłana w ramach żądania HTTP przez aplikację kliencką do Apigee Edge zawiera nieprawidłowe znaki, takie jak znak równości (=), przecinek (,), średnik (;), tabulacja, CRLF i znak nowego wiersza.
Ten błąd występuje, gdy ścieżka w adresie URL żądania HTTP wysłanego przez aplikację kliencką do Apigee Edge zawiera znaki niedozwolone zgodnie ze specyfikacją RFC 3986, sekcja 3.3: Ścieżka.
Sprawdź, czy ścieżka w adresie URL żądania HTTP wysłanego przez aplikację klienta do Apigee Edge nie zawiera żadnych znaków niedozwolonych zgodnie z
specyfikacją RFC 3986, sekcja 3.3: Ścieżka.
protocol.http.TooBigBody
Kod stanu HTTP:
413 Request Entity Too Large
Komunikat o błędzie:
Body buffer overflow
Możliwa przyczyna:
Ten błąd występuje, gdy rozmiar ładunku przesłanego przez aplikację klienta w ramach żądania HTTP do Apigee Edge przekracza dozwolony limit w Apigee Edge.
Łączny rozmiar wszystkich nagłówków żądania wysłanych przez aplikację klienta w ramach żądania HTTP do Apigee Edge przekracza dozwolony limit w Apigee Edge.
Ten błąd występuje, gdy rozmiar wiersza żądania wysłanego przez aplikację klienta w ramach żądania HTTP do Apigee Edge przekracza dozwolony limit w Apigee Edge.
Ten błąd występuje, jeśli nagłówek Content-Encoding wysłany przez klienta w ramach odpowiedzi HTTP zawiera format kodowania lub ładunku, który nie jest obsługiwany przez Apigee Edge.
Ten błąd występuje, jeśli URL żądania serwera backendu, reprezentowany przez zmienną przepływu target.url, zawiera ścieżkę rozpoczynającą się od znaku zapytania (?) zamiast ukośnika (/), co jest nieprawidłowe.
Ten błąd występuje, jeśli konkretny nagłówek HTTP, który nie może mieć duplikatów w Apigee Edge, występuje więcej niż raz z tymi samymi lub różnymi wartościami w odpowiedzi HTTP wysłanej przez serwer backendu do Apigee Edge.
Sprawdź, czy odpowiedź HTTP wysłana przez serwer backendu do Apigee Edge zawsze zawiera prawidłową nazwę nagłówka zgodnie z opisem w
RFC 7230, sekcja 3.2: pola nagłówka.
protocol.http.EmptyPath
Kod stanu HTTP:
500 Internal Server Error
Komunikat o błędzie:
Request path cannot be empty
Możliwa przyczyna:
Ten błąd występuje, jeśli adres URL żądania HTTP serwera backendu, reprezentowany przez zmienną przepływu target.url, zawiera pustą ścieżkę.
Upewnij się, że odpowiedź HTTP serwera backendu wysłana do Apigee Edge nie zawiera w nazwach nagłówków znaków spoza zestawu ASCII zgodnie z
RFC 7230, sekcja 3.2.6: Field Value Components (Elementy wartości pola).
protocol.http.HeaderWithInvalidChar
Kod stanu HTTP:
502 Bad Gateway
Komunikat o błędzie:
Header {header_name} contains invalid character {character}
Możliwa przyczyna:
Ten błąd występuje, jeśli nazwa nagłówka wysłana przez serwer zaplecza w ramach odpowiedzi HTTP zawiera nieprawidłowe znaki, takie jak znak równości (=), przecinek (,), średnik (;), tabulator, CRLF lub znak nowego wiersza.
Proxy refused to create tunnel with response status {status code}
Możliwa przyczyna:
Ten błąd występuje podczas tworzenia tunelu między Apigee Edge a serwerem zaplecza przez serwer proxy z powodu problemów z zaporą ogniową, listą kontroli dostępu (ACL), DNS-em, dostępnością serwera zaplecza itp.
Uwaga:kod stanu w komunikacie o błędzie (faultstring) wskazuje główną przyczynę problemu.
Response Status code 306 is reserved, so can't be used.
Możliwa przyczyna:
Ten błąd występuje, gdy serwer backendu odpowiada kodem stanu306 do Apigee Edge.
Kod stanu 306 został zdefiniowany w poprzedniej wersji specyfikacji HTTP. Zgodnie z bieżącą specyfikacją HTTP ten kod jest zarezerwowany i nie należy go używać.
Ten błąd występuje, jeśli odpowiedź HTTP z serwera backendu do Apigee Edge to 204 No Content lub 205 Reset Content, ale zawiera treść odpowiedzi lub co najmniej 1 z tych nagłówków:
Ten błąd występuje, gdy rozmiar ładunku przesłanego przez aplikację klienta w ramach żądania HTTP do Apigee Edge przekracza dozwolony limit w Apigee Edge.
Ten błąd występuje, gdy łączny rozmiar wszystkich nagłówków odpowiedzi wysłanych przez serwer zaplecza w odpowiedzi HTTP do Apigee Edge przekracza dozwolony limit w Apigee Edge.
Ten błąd występuje, jeśli rozmiar wiersza odpowiedzi wysłanego przez serwer backendu w ramach odpowiedzi HTTP do Apigee Edge przekracza dozwolony limit w Apigee Edge.
Ten błąd występuje, jeśli nagłówek Content-Encoding wysłany przez serwer zaplecza w ramach odpowiedzi HTTP zawiera format kodowania/danych, którego
Apigee Edge nie obsługuje.
KeyAlias {KeyAlias_name} is not found in
Keystore {Keystore_Name}
Możliwa przyczyna:
Ten błąd występuje, jeśli konkretnego aliasu klucza, do którego odwołuje się parametr TargetEndpoint lub TargetServer, nie można znaleźć w danym magazynie kluczy.
Napraw
Upewnij się, że klucz aliasu podany w ustawieniu TargetEndpoint lub TargetServer istnieje i jest częścią konkretnego magazynu kluczy.
security.util.TrustStoreWithNoCertificates
Kod stanu HTTP:
500 Internal Server Error
Komunikat o błędzie:
TrustStore {truststore_name} has no certificates
Możliwa przyczyna:
Ten błąd występuje, jeśli określony zaufany magazyn kluczy, do którego odwołuje się parametr TargetEndpoint lub TargetServer, nie zawiera żadnych certyfikatów.
Napraw
Jeśli chcesz zweryfikować certyfikat serwera backendu i używać repozytorium z zaufanymi certyfikatami w punkcie końcowym docelowym lub serwerze docelowym, upewnij się, że repozytorium z zaufanymi certyfikatami zawiera ważne certyfikaty serwera backendu.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 2024-11-08 UTC."],[],[]]