Wyświetlasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X. info
Krótki opis problemu
Aplikacja kliencka otrzymuje kod stanu HTTP 404 z komunikatem Not Found i komunikatem o błędzie Unable to identify proxy for host: VIRTUAL_HOST and url: PATH w odpowiedzi na wywołania interfejsu API.
Ten błąd oznacza, że Edge nie mógł znaleźć serwera proxy interfejsu API dla określonego hosta wirtualnego i ścieżki.
Komunikat o błędzie
Otrzymasz ten kod stanu HTTP:
HTTP/1.1 404 Not Found
Wyświetli się też komunikat o błędzie podobny do tego poniżej:
{
"fault":{
"faultstring":"Unable to identify proxy for host: default and url: \/oauth2\/token",
"detail":{
"errorcode":"messaging.adaptors.http.flow.ApplicationNotFound"
}
}
}
Powyższy komunikat o błędzie oznacza, że Edge nie mógł znaleźć serwera proxy interfejsu API dla hosta wirtualnego default i ścieżki /oauth2/token.
Możliwe przyczyny
Oto niektóre możliwe przyczyny tego błędu:
| Przyczyna | Opis | Instrukcje rozwiązywania problemów dotyczące |
|---|---|---|
| Serwer proxy interfejsu API nie jest powiązany z określonym hostem wirtualnym | Określony serwer proxy interfejsu API nie jest skonfigurowany do przyjmowania żądań na hoście wirtualnym podanym w komunikacie o błędzie. | Użytkownicy publicznej i prywatnej chmury Edge |
| Host wirtualny usunięty w nowo wdrożonej wersji proxy interfejsu API | Ten problem może wystąpić, gdy usuniesz hosta wirtualnego z nowo wdrożonej wersji, a klient nadal używa tego hosta. | Użytkownicy publicznej i prywatnej chmury Edge |
| Ścieżka nie jest powiązana z żadnym serwerem proxy interfejsu API | Określony serwer proxy interfejsu API nie jest skonfigurowany do przyjmowania żądań na ścieżce podanej w komunikacie o błędzie. | Użytkownicy publicznej i prywatnej chmury Edge |
| Proxy interfejsu API nie został wdrożony w środowisku | Określony serwer proxy interfejsu API nie jest wdrożony w środowisku, w którym próbujesz wysyłać żądania interfejsu API. | Użytkownicy publicznej i prywatnej chmury Edge |
| Środowisko nie zostało wczytane w procesorze wiadomości | Określone środowisko (w którym próbujesz wysyłać żądania do interfejsu API) nie zostało załadowane w procesorach wiadomości z powodu błędu. | Użytkownicy Edge Private Cloud |
| Serwer proxy interfejsu API nie został wdrożony na co najmniej jednym procesorze wiadomości | Serwer proxy interfejsu API może nie zostać wdrożony na co najmniej 1 procesorze wiadomości z powodu braku powiadomienia o zdarzeniu podczas wdrażania. | Użytkownicy Edge Private Cloud |
Typowe etapy diagnostyki
Dzienniki NGINX i procesora komunikatów pomogą w rozwiązywaniu problemów z błędem 404.
Aby sprawdzić dzienniki:
- Wyświetl logi NGINX za pomocą tego polecenia:
/opt/apigee/var/log/edge-router/nginx/ORG~ENV.PORT#_access_log
- Sprawdź, czy w wpisach logu znajdują się te pola:
Pole Wartość Upstream_status, status404X-Apigee-fault-codemessaging.adaptors.http.flow.ApplicationNotFoundZanotuj identyfikator wiadomości z logów.
- Sprawdź logi procesora komunikatów (
/opt/apigee/var/log/edge-message-processor/logs/system.log)), aby zobaczyć, czy maszmessaging.adaptors.http.flow.ApplicationNotFounddla konkretnego interfejsu API lub czy masz unikalny identyfikator wiadomości z kroku 2 dla żądania do interfejsu API.Przykładowy komunikat o błędzie z dziennika procesora komunikatów
NIOThread@1 ERROR ADAPTORS.HTTP.FLOW - AbstractRequestListener.onException() : Request:POST, uri:/weather, message Id:null, exception:com.apigee.rest.framework.ResourceNotFoundException{ code = messaging.adaptors.http.flow.ApplicationNotFound, message = Unable to identify proxy for host: vh1 and url: /weather, associated contexts = []}, context:Context@342ea86b input=ClientInputChannel(SSLClientChannel[Accepted: Remote:10.123.123.123:8443 Local:10.135.33.68:62092]@1206954 useCount=1 bytesRead=0 bytesWritten=0 age=1ms lastIO=0ms isOpen=true)
W dzienniku powyżej kod błędu i komunikat o błędzie są następujące:
code = messaging.adaptors.http.flow.ApplicationNotFound, message = Unable to identify proxy for host: vh1 and url: /weather
Przyczyna: proxy interfejsu API nie jest powiązane z określonym hostem wirtualnym
Jeśli proxy interfejsu API nie jest skonfigurowany do akceptowania żądań dotyczących konkretnego hosta wirtualnego, możemy otrzymać odpowiedź 404 Not Found z komunikatem o błędzie Unable to identify proxy for host: VIRTUAL_HOST and url: PATH.
Diagnostyka
- Sprawdź konfigurację punktu końcowego proxy proxy interfejsu API i zobacz, czy proxy interfejsu API jest skonfigurowane tak, aby akceptować żądania dotyczące hosta wirtualnego określonego w błędzie. Jest to oznaczone elementem
VirtualHost. Aby to zrozumieć, przyjrzyjmy się przykładowej konfiguracjiProxyEndpoint.Przykładowa konfiguracja punktu końcowego proxy pokazująca, że proxy interfejsu API akceptuje żądania na bezpiecznym hoście wirtualnym

- Załóżmy, że hosty wirtualne są zdefiniowane w określonym środowisku w ten sposób:
Nazwa Port Alias hosta default80myorg-prod.apigee.netsecure443myorg-prod.apigee.net - Wysyłasz żądanie do interfejsu API
defaultVirtualHost, używając adresu URLhttp://myorg-prod.apigee.net/weather - Ponieważ
ProxyEndpointnie madefaultVirtualHost, jak pokazano w przykładzie powyżej, otrzymasz kod odpowiedzi404z tym komunikatem o błędzie:{"fault":{"faultstring":"Unable to identify proxy for host: default and url: \/weather","detail":{"errorcode":"messaging.adaptors.http.flow.ApplicationNotFound"}}} - Aby rozwiązać ten problem, przejdź do sekcji Rozwiązanie poniżej.
- Jeśli
ProxyEndpointjest skonfigurowany do akceptowania żądań wdefaultVirtualHost, przejdź do następnej przyczyny: Ścieżka nie jest powiązana z żadnym serwerem proxy interfejsu API.
Rozdzielczość
- Aby rozwiązać ten problem, dodaj brakujący atrybut
VirtualHostdo konfiguracjiProxyEndpoint. W przypadku powyższego przykładu możesz dodać domyślny elementVirtualHostdo konfiguracjiProxyEndpointw ten sposób:<VirtualHost>default</VirtualHost>
Przykładowa konfiguracja punktu końcowego proxy pokazująca dodawanie domyślnego elementu VirtualHost

- W przykładzie powyżej, jeśli zamierzasz używać tylko
secureVirtualHostw przypadku tego konkretnego proxy interfejsu API, wysyłaj żądania do interfejsu API tylko dosecureVirtualHostza pomocą protokołu HTTPS:https://myorg-prod.apigee.net/weather
Przyczyna: host wirtualny został usunięty w nowo wdrożonej wersji proxy interfejsu API
Jeśli po usunięciu konkretnego hosta wirtualnego (który był częścią wcześniej wdrożonej wersji) zostanie wdrożona nowa wersja serwera proxy interfejsu API, a klienci nadal będą używać tego hosta do wysyłania żądań do interfejsu API, może to spowodować ten problem.
Diagnostyka
- Sprawdź konfigurację punktu końcowego proxy proxy interfejsu API, aby dowiedzieć się, czy proxy interfejsu API jest skonfigurowany do akceptowania żądań dotyczących hosta wirtualnego określonego w błędzie. Wskazuje na to element
VirtualHostw konfiguracjiProxyEndpoint. - Jeśli host wirtualny podany w błędzie nie istnieje w konfiguracji
ProxyEndpoint, wykonaj te czynności. W przeciwnym razie przejdź do następnej przyczyny – Ścieżka nie jest powiązana z żadnym proxy interfejsu API. - Porównaj konfigurację
ProxyEndpointwcześniej wdrożonej wersji z obecnie wdrożoną wersją.- Załóżmy na przykład, że wcześniej wdrożona wersja to
5, a obecnie wdrożona wersja to6:- Wirtualni hostowie skonfigurowani w punkcie końcowym serwera proxy w wersji 5
- Wirtualni hosty skonfigurowani w punkcie końcowym serwera proxy w wersji 6
<HTTPProxyConnection> <BasePath>/weather</BasePath> <Properties/> <VirtualHost>vh1</VirtualHost> </HTTPProxyConnection><HTTPProxyConnection> <BasePath>/weather</BasePath> <Properties/> <VirtualHost>secure</VirtualHost> </HTTPProxyConnection> - W przykładzie powyżej element
VirtualHost vh1występował wrevision 5,, ale został usunięty wrevision 6i zastąpiony elementemVirtualHost secure. - Jeśli Ty lub Twoi klienci wysyłacie żądania do tego proxy interfejsu API za pomocą
VirtualHost vh1(który był częściąrevision 5), otrzymasz kod odpowiedzi404z tym komunikatem o błędzie:{"fault":{"faultstring":"Unable to identify proxy for host: vh1 and url: \/weather","detail":{"errorcode":"messaging.adaptors.http.flow.ApplicationNotFound"}}}
- Załóżmy na przykład, że wcześniej wdrożona wersja to
- Sprawdź, czy zmiana hosta wirtualnego została wprowadzona celowo czy nieumyślnie w obecnie wdrożonej wersji i podejmij odpowiednie działania zgodnie z instrukcjami w sekcji Rozwiązanie.
Rozdzielczość
Jeśli zauważysz, że w nowej wersji host wirtualny lub hosty wirtualne zostały usunięte, może to być celowe lub przypadkowe. W każdym przypadku wykonaj te czynności, aby rozwiązać problem.
Scenariusz 1. Celowa zmiana
Jeśli usunięcie hosta wirtualnego jest zamierzone, możesz wybrać jedną z tych opcji (pierwsza z nich jest zalecana):
- Utwórz nowy serwer proxy z inną ścieżką podstawową i użyj innego hosta wirtualnego (który nie występuje w poprzednio wdrożonej wersji).
-
Jeśli chcesz nadal używać istniejącego serwera proxy interfejsu API, ale z innym hostem wirtualnym, lepiej zachować dotychczasowy host wirtualny i dodać kolejny.
Dzięki temu zmiana nie wpłynie na użytkowników tego serwera proxy interfejsu API.
Jeśli chcesz używać dotychczasowego serwera proxy interfejsu API i mieć tylko innego hosta wirtualnego, poinformuj o tym użytkowników z wyprzedzeniem i wprowadź tę zmianę w okresie konserwacji.
Dzięki temu użytkownicy tego serwera proxy interfejsu API będą świadomi zmiany i będą mogli używać innego hosta wirtualnego do wywoływania tego serwera proxy interfejsu API. Dlatego ta zmiana nie będzie miała na nie wpływu.
Scenariusz 2. Nieumyślna zmiana
Jeśli usunięcie hosta wirtualnego nastąpiło przez pomyłkę, a nie było zamierzone, wykonaj te czynności:
- Zaktualizuj konfigurację
ProxyEndpointw obecnie wdrożonej wersji, aby używać tych samych hostów wirtualnych, które były używane w poprzednio wdrożonej wersji. W przykładzie powyżej zmień tę sekcję:<HTTPProxyConnection> <BasePath>/weather</BasePath> <Properties/> <VirtualHost>secure</VirtualHost> </HTTPProxyConnection>do
<HTTPProxyConnection> <BasePath>/weather</BasePath> <Properties/> <VirtualHost>vh1</VirtualHost> </HTTPProxyConnection> - Wdróż ponownie wersję.
Sprawdzone metody
Zawsze zalecamy wdrażanie nowych serwerów proxy lub nowych wersji w okresie konserwacji lub gdy spodziewany jest najmniejszy ruch. Dzięki temu można uniknąć problemów, które mogą wystąpić podczas wdrażania, lub zminimalizować wpływ na ruch.
Przyczyna: ścieżka nie jest powiązana z żadnym proxy interfejsu API
Jeśli proxy interfejsu API nie jest skonfigurowany do przyjmowania żądań dotyczących konkretnej ścieżki użytej w adresie URL żądania API, możemy otrzymać odpowiedź 404 Not Found z komunikatem o błędzie Unable to identify proxy for host: VIRTUAL_HOST and url: PATH.
Diagnostyka
- Sprawdź konfigurację
ProxyEndpointkonkretnego proxy interfejsu API, do którego chcesz wysyłać żądania. - Sprawdź, czy serwer proxy interfejsu API jest skonfigurowany tak, aby akceptować żądania dotyczące konkretnej ścieżki wskazanej w komunikacie o błędzie. Aby to zrobić, wykonaj czynności opisane w scenariuszu 1 i scenariuszu 2.
Scenariusz 1. Ścieżka nie pasuje do ścieżki podstawowej proxy interfejsu API
- Jeśli
pathwskazany w komunikacie o błędzie nie jest taki sam jakbasepathkonkretnego serwera proxy interfejsu API lub nie zaczyna się odbasepath, może to być przyczyną błędu. - Wyjaśnijmy to na przykładzie:
basepathdocelowego serwera proxy interfejsu API to/weather- Adres URL żądania do interfejsu API to
https://myorg-prod.apigee.net/climate. Oznacza to, że ścieżka używana w adresie URL żądania do interfejsu API to/climate. - W tym przykładzie znak
pathnie jest taki sam jak znakbasepathi nie zaczyna się odbasepathniego. Dlatego pojawia się ten błąd:{ "fault":{ "faultstring":"Unable to identify proxy for host: secure and url: \/climate", "detail":{ "errorcode":"messaging.adaptors.http.flow.ApplicationNotFound" } } }
Rozdzielczość
- Upewnij się, że
pathużyty w adresie URL żądania do interfejsu API jest taki sam jakbasepathkonkretnego proxy interfejsu API. - W podanym wyżej przykładzie adres URL żądania do interfejsu API powinien wyglądać tak:
{ https://myorg-prod.apigee.net/weather
Scenariusz 2. Ścieżka nie pasuje do żadnego z dostępnych przepływów warunkowych
- Jeśli
pathużyty w adresie URL żądania interfejsu API zaczyna się odbasepath, może się zdarzyć, żepath suffix(część, która występuje pobasepath) wskazany w komunikacie o błędzie nie pasuje do żadnego z przepływów warunkowych, co może spowodować błąd404. - Wyjaśnimy to na przykładzie:
basepathdocelowego serwera proxy interfejsu API to/weather- Adres URL żądania do interfejsu API to
https://myorg-prod.apigee.net/weather/Delhi. Oznacza to, że ścieżka używana w adresie URL żądania do interfejsu API to/weather/Delhi.
- W tym przykładzie
pathzaczyna się odbasepath/weather. Dodatkowo mapath suffixo wartości/Delhi. - Teraz sprawdź, czy w
ProxyEndpointnie ma przepływów warunkowych. - Jeśli nie ma przepływów warunkowych lub jest ich kilka, przejdź do następnej przyczyny – serwer proxy interfejsu API nie jest wdrożony w środowisku.
- Jeśli
ProxyEndpointzawiera tylko przepływy warunkowe, sprawdź te kwestie:- Jeśli warunki we wszystkich tych przepływach warunkowych sprawdzają konkretną
proxy.pathsuffix(ścieżkę po ścieżce podstawowej). - Jeśli parametr
path suffixpodany w adresie URL żądania interfejsu API nie spełnia żadnego z warunków, jest to przyczyną błędu.
- Jeśli warunki we wszystkich tych przepływach warunkowych sprawdzają konkretną
- Załóżmy, że w sekcji
ProxyEndpointmamy 2 automatyzacje, które są automatyzacjami warunkowymi, jak pokazano poniżej:<Condition>(proxy.pathsuffix MatchesPath "/Bangalore") and (request.verb = "GET")</Condition> <Condition>(proxy.pathsuffix MatchesPath "/Chennai") and (request.verb = "GET")</Condition>
- W przykładzie powyżej mamy 2 przepływy warunkowe: jeden pasuje do
proxy.pathsuffix(ścieżka po ścieżce podstawowej) i/Bangalore, a drugi pasuje do/Chennai. Nie ma jednak żadnego, który pasuje do/Delhi, czylipath suffixprzekazanego w adresie URL żądania do interfejsu API. - Jest to przyczyna błędu
404. W takim przypadku pojawi się ten błąd:{ "fault":{ "faultstring":"Unable to identify proxy for host: secure and url: \/weather\/Delhi", "detail":{ "errorcode":"messaging.adaptors.http.flow.ApplicationNotFound" } } }
- W przykładzie powyżej mamy 2 przepływy warunkowe: jeden pasuje do
Rozdzielczość
- Upewnij się, że
path suffixpasuje do co najmniej jednego przepływu warunkowego w punkcie końcowym proxy. - W podanym powyżej przykładzie możesz rozwiązać problem na jeden z tych sposobów:
- Jeśli chcesz zastosować określony zestaw zasad do ścieżki
/Delhi, dodaj osobny przepływ z wymaganym zestawem zasad i upewnij się, że istnieje warunek pasujący do/proxy.pathsuffix/Delhi, jak pokazano poniżej:<Condition>(proxy.pathsuffix MatchesPath "/Delhi") and (request.verb = "GET")</Condition>
- Jeśli chcesz zastosować wspólny zestaw zasad do ścieżki
/Delhi, w przypadku wspólnego przepływu upewnij się, że istnieje warunek, który zezwala na ogólny wzorzec/proxy.pathsuffix. Oznacza to, że zezwala na dowolną ścieżkę pobasepath/weather, jak pokazano poniżej:<Condition>(proxy.pathsuffix MatchesPath "/**") and (request.verb = "GET")</Condition>
- Jeśli chcesz zastosować określony zestaw zasad do ścieżki
Jeśli ProxyEndpoint ma prawidłowy basepath, a path suffix określony w adresie URL interfejsu API pasuje do jednego z przepływów warunkowych, przejdź do następnej przyczyny – serwer proxy interfejsu API nie jest wdrożony w środowisku.
Przyczyna: proxy interfejsu API nie został wdrożony w środowisku
Diagnostyka
- Określ środowisko, w którym istnieje alias hosta użyty w adresie URL żądania do interfejsu API.
Możesz to zrobić, sprawdzając szczegóły wszystkich hostów wirtualnych w każdym środowisku organizacji w interfejsie Edge.
Załóżmy na przykład, że masz taką konfigurację:
- Jeśli Twój adres URL to
http://myorg-prod.apigee.net/weather, alias hosta tomyorg-prod.apigee.net. - Alias hosta
myorg-prod.apigee.netjest skonfigurowany w ramach jednego z wirtualnych hostów w środowiskuprodTwojej organizacji.
- Jeśli Twój adres URL to
- Sprawdź, czy konkretny serwer proxy interfejsu API jest wdrożony w określonym środowisku, które zostało ustalone w kroku 1 powyżej.
- Jeśli serwer proxy interfejsu API nie jest wdrożony w określonym środowisku, jest to przyczyną błędu
404.- W przykładzie z kroku 1 załóżmy, że serwer proxy interfejsu API nie jest wdrożony w środowisku
prod. W takim przypadku to jest przyczyną błędu. - Przejdź do sekcji Rozwiązanie poniżej.
- W przykładzie z kroku 1 załóżmy, że serwer proxy interfejsu API nie jest wdrożony w środowisku
- Jeśli proxy interfejsu API jest wdrożony w określonym środowisku, przejdź do następnej przyczyny – Środowisko nie jest wczytane w procesorach wiadomości.
Rozdzielczość
Wdróż proxy interfejsu API w środowisku, w którym zamierzasz wysyłać żądania do interfejsu API.
Przyczyna: środowisko nie zostało wczytane na procesorach wiadomości
Diagnostyka
- Zaloguj się na każdy procesor komunikatów i sprawdź, czy konkretne środowisko, w którym wysyłasz żądanie do interfejsu API, jest załadowane na procesorze komunikatów. W tym celu użyj tego polecenia:
curl -v 0:8082/v1/runtime/organizations/<orgname>/environments
- Jeśli konkretne środowisko jest wymienione w powyższym poleceniu, przejdź do następnej przyczyny: Proxy interfejsu API nie jest wdrożony na co najmniej jednym procesorze wiadomości.
- Jeśli konkretne środowisko nie jest wymienione, sprawdź
/opt/apigee/var/log/edge-message-processor/logs/system.logi/opt/apigee/var/log/edge-message-processor/logs/startupruntimeerrors.logw sekcji Procesory wiadomości, czy podczas wczytywania środowisk nie wystąpiły błędy. - Może wystąpić wiele różnych błędów, które mogą spowodować niepowodzenie wczytywania środowiska w procesorze komunikatów. Rozwiązanie zależy od rodzaju błędu.
Rozdzielczość
Środowisko może nie zostać wczytane w procesorze komunikatów z wielu powodów. W tej sekcji przedstawiamy kilka możliwych przyczyn tego problemu i wyjaśniamy, jak go rozwiązać.
-
Jeśli w dzienniku procesora komunikatów zobaczysz jeden z tych błędów, oznacza to, że problem dotyczy certyfikatów lub kluczy dodanych do określonego magazynu kluczy lub magazynu zaufanych certyfikatów w określonym środowisku.
Błąd 1. java.security.KeyStoreException: Nie można zastąpić własnego certyfikatu
2018-01-30 12:04:38,248 pool-47-thread-4 ERROR MESSAGING.RUNTIME - AbstractConfigurator.propagateEvent() : Error while handling the update for the Configurator com.apigee.kernel.exceptions.spi.UncheckedException: Failed to add certificate : mycert in key store : mytruststore in environment : test at com.apigee.entities.configurators.KeyStore.setCertificateEntry(KeyStore.java:156) ~[config-entities-1.0.0.jar:na] at com.apigee.entities.configurators.KeyStore.handleUpdate(KeyStore.java:101) ~[config-entities-1.0.0.jar:na] at com.apigee.entities.AbstractConfigurator.propagateEvent(AbstractConfigurator.java:85) ~[config-entities-1.0.0.jar:na] at com.apigee.messaging.runtime.Environment.handleUpdate(Environment.java:238) [message-processor-1.0.0.jar:na] … Caused by: java.security.KeyStoreException: Cannot overwrite own certificate at com.sun.crypto.provider.JceKeyStore.engineSetCertificateEntry(JceKeyStore.java:355) ~[sunjce_provider.jar:1.8.0_151] at java.security.KeyStore.setCertificateEntry(KeyStore.java:1201) ~[na:1.8.0_151] at com.apigee.entities.configurators.KeyStore.setCertificateEntry(KeyStore.java:153) ~[config-entities-1.0.0.jar:na]
... 20 common frames omitted2018-01-30 12:04:38,250 pool-47-thread-4 ERROR MESSAGING.RUNTIME - AbstractConfigurator.rollbackTransaction() : Error in processing the changes : Unknown resource type cert
Błąd 2. java.security.KeyStoreException: Cannot overwrite secret key
2017-11-01 03:28:47,560 pool-21-thread-7 ERROR MESSAGING.RUNTIME - AbstractConfigurator.propagateEvent() : Error while handling the update for the Configurator com.apigee.kernel.exceptions.spi.UncheckedException: Failed to add certificate : mstore in key store : myTruststore in environment : dev at com.apigee.entities.configurators.KeyStore.setCertificateEntry(KeyStore.java:156) ~[config-entities-1.0.0.jar:na] at com.apigee.entities.configurators.KeyStore.handleUpdate(KeyStore.java:101) ~[config-entities-1.0.0.jar:na] ... Caused by: java.security.KeyStoreException: Cannot overwrite secret key at com.sun.crypto.provider.JceKeyStore.engineSetCertificateEntry(JceKeyStore.java:354) ~[sunjce_provider.jar:1.8.0_144] at java.security.KeyStore.setCertificateEntry(KeyStore.java:1201) ~[na:1.8.0_144] at com.apigee.entities.configurators.KeyStore.setCertificateEntry(KeyStore.java:153) ~[config-entities-1.0.0.jar:na] ... 20 common frames omitted 2017-11-01 03:28:47,562 pool-21-thread-7 ERROR MESSAGING.RUNTIME - AbstractConfigurator.rollbackTransaction() : Error in processing the changes : Unknown resource type cert
- Pobierz szczegóły magazynu kluczy lub magazynu zaufanych certyfikatów określonego w komunikacie o błędzie wyświetlonym w poprzednim kroku, korzystając z tego wywołania interfejsu Management API:
curl -v "http://<management-IPaddress>:8080/v1/organizations/<org-name>/environments/<env-name>/keystores/myTruststore" -u <user>
Przykładowe dane wyjściowe:
{ "certs":[ "mycert", "mycert-new" ], "keys":[ "mycert" ], "name":"myTruststore" } - Przykładowe dane wyjściowe pokazują, że w magazynie zaufanych certyfikatów znajdują się 2 certyfikaty i klucz
myTruststore. Magazyn zaufanych certyfikatów zwykle nie zawiera klucza. W takim przypadku lepiej jest mieć jeden certyfikat i jeden klucz. - Szczegóły 2 certyfikatów możesz uzyskać za pomocą tego interfejsu API:
curl -s http://<management-IPaddress>:8080/v1/runtime/organizations/<org-name>/environments/<env-name>/keystores/<keystore-name>/certs/<cert-name>
- Sprawdź datę ważności każdego certyfikatu i określ, który z nich wygasł lub jest starszy.
- Usuń z magazynu zaufanych certyfikatów
myTruststorewygasły lub niechciany certyfikat.
Jeśli problem nadal występuje lub widzisz inny błąd niż wymienione w kroku 1 powyżej, przejdź do sekcji Informacje diagnostyczne, które musisz zebrać.
Przyczyna: proxy interfejsu API nie został wdrożony na co najmniej 1 procesorze wiadomości
Proxy interfejsu API może nie być wdrożony na co najmniej 1 procesorze wiadomości. Ten problem występuje bardzo rzadko i jest zwykle spowodowany brakiem powiadomienia o zdarzeniu z serwera zarządzania do procesora komunikatów podczas wdrażania konkretnego serwera proxy interfejsu API. W tym przypadku nie możesz też utworzyć sesji śledzenia w interfejsie Edge.
Diagnostyka
- Zaloguj się na każdym procesorze wiadomości i sprawdź, czy konkretna wersja serwera proxy interfejsu API jest wdrożona, czy nie, używając tego polecenia:
curl -v 0:8082/v1/runtime/organizations/<orgname>/environments/<envname>/apis/<apiname>/revisions
- Jeśli konkretna wersja proxy interfejsu API nie jest widoczna w wyniku polecenia wymienionego w kroku 1 powyżej, uruchom ponownie konkretny procesor komunikatów zgodnie z instrukcjami w sekcji Rozwiązanie.
- Powtórz kroki 1–2 w przypadku wszystkich procesorów wiadomości.
- Jeśli konkretna wersja proxy interfejsu API jest wdrożona na wszystkich procesorach wiadomości, nie jest to przyczyną tego problemu. Otwórz stronę Musisz zebrać informacje diagnostyczne.
Rozdzielczość
Ponownie uruchom konkretne procesory wiadomości, na których nie jest wdrożona konkretna wersja proxy interfejsu API.
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
Diagnozowanie problemów za pomocą monitorowania interfejsu API
Monitorowanie interfejsu API umożliwia szybkie odizolowanie obszarów problemowych w celu zdiagnozowania błędów, problemów z wydajnością i czasem oczekiwania oraz ich źródła, np. aplikacji deweloperów, serwerów proxy interfejsów API, docelowych usług backendu lub platformy interfejsu API.
Aby rozwiązać ten problem, otwórz stronę Monitorowanie interfejsu API > Zbadaj i wybierz odpowiednią datę, serwer proxy itp. Możesz zobaczyć te szczegóły:
- Kod błędu:
messaging.adaptors.http.flow.ApplicationNotFound - Kod stanu:
404 - Źródło błędu:
ApigeelubMP
Możesz też kliknąć Wyświetl logi, jak pokazano na zrzucie ekranu powyżej, i sprawdzić więcej informacji.

Przykładowy scenariusz pokazuje, jak rozwiązywać5xx problemy z interfejsami API za pomocą usługi API Monitoring. Możesz na przykład skonfigurować alert, aby otrzymywać powiadomienia, gdy liczba kodów stanu 404 przekroczy określony próg.
musi zbierać informacje diagnostyczne;
Jeśli problem nadal występuje po wykonaniu powyższych instrukcji, zbierz te informacje diagnostyczne: Skontaktuj się z zespołem pomocy Apigee Edge i udostępnij mu te informacje.
- Jeśli jesteś użytkownikiem chmury publicznej, podaj te informacje:
- Nazwa organizacji
- Nazwa środowiska
- Nazwa proxy interfejsu API
- Pełne polecenie curl do odtworzenia błędu
- Jeśli jesteś użytkownikiem chmury prywatnej, podaj te informacje:
- Pełny komunikat o błędzie
- Nazwa środowiska
- pakiet proxy interfejsu API,
- Dzienniki procesora komunikatów
/opt/apigee/var/log/edge-message-processor/logs/system.log - Dane wyjściowe tych poleceń na każdym procesorze wiadomości.
curl -v 0:8082/v1/runtime/organizations/<orgname>/environments
curl -v 0:8082/v1/runtime/organizations/<orgname>/environments/<envname>/apis/<apiname>/revisions - Szczegółowe informacje o sekcjach tego przewodnika, które zostały przez Ciebie wypróbowane, oraz wszelkie inne spostrzeżenia, które pomogą nam szybko rozwiązać ten problem.