Wyświetlasz dokumentację Apigee Edge.
Przejdź do
dokumentacji Apigee X. info
Rozszerzenie możesz debugować za pomocą komunikatów widocznych w 2 miejscach: w narzędziu Trace i w dziennikach rozszerzeń. Gdy rozszerzenie nie działa, zidentyfikowanie problemu może wymagać informacji z obu tych miejsc.
Narzędzie Trace w Apigee Edge służy do iteracyjnego testowania i edytowania kodu proxy interfejsu API podczas jego tworzenia. Komunikaty Trace obejmują błędy z kodu proxy interfejsu API, w tym konfiguracji proxy interfejsu API i zasad.
Błędy związane z rozszerzeniami, które pojawiają się w narzędziu Trace, zwykle nie zawierają wielu szczegółów. Informują tylko o tym, które wywołanie rozszerzenia się nie powiodło, oraz podają kod błędu HTTP. Jeśli nie widzisz tu niczego przydatnego, następnym najlepszym miejscem do sprawdzenia jest dziennik używanego rozszerzenia.
Rozszerzenia generują wpisy w dzienniku w czasie działania. (Dzienniki rozszerzeń są dostępne tylko dla administratorów organizacji).
Te dzienniki zawierają wpisy zwracane przez zasób zewnętrzny, z którym rozszerzenie jest skonfigurowane do interakcji. Jeśli na przykład w rozszerzeniu są nieprawidłowo skonfigurowane dane logowania do zasobu zewnętrznego, błąd prawdopodobnie pojawi się tutaj.
Dzienniki zawierają też wpisy z wewnętrznego kodu rozszerzenia. Przeglądając dzienniki, pamiętaj, że niektóre wpisy nie są związane z błędem, który próbujesz naprawić. Wpisy w dzienniku związane z rozszerzeniem zwykle zaczynają się od słowa
details, tak jak w tym wpisie logu z rozszerzenia Cloud Pub/Sub:details: 'Invalid resource name given (name=projects/example-test-123456/topic/extension-example). Refer to https://cloud.google.com/pubsub/docs/admin#resource_names for more information.'
Typy i przyczyny błędów
Przepływ przetwarzania żądania rozszerzenia odbywa się od zasady ExtensionCallout w proxy interfejsu API, przez rozszerzenie, do zasobu zewnętrznego i z powrotem. Błąd może więc wystąpić w dowolnym z tych miejsc.
Błędy, które widzisz, mogą należeć do tych kategorii.
Błędy w konfiguracji rozszerzenia
Jest to konfiguracja, którą administrator organizacji wykonuje podczas dodawania rozszerzenia do środowiska.
Jeśli na przykład skonfigurujesz rozszerzenie Cloud Logging z nieprawidłowym identyfikatorem projektu w chmurze Google Cloud, usługa Google Cloud Logging zwróci do rozszerzenia błąd. Szczegóły tych błędów zwykle znajdują się w dzienniku rozszerzenia.
Dowody w narzędziu Trace
W edytorze proxy te błędy zwykle będą wyświetlane jako błąd na poziomie 4xx- lub
5xx. Edytor proxy nie wyświetli jednak żadnych szczegółów
dotyczących przyczyny błędu, poza informacją, że rozszerzenie zwróciło błąd.
{
"fault": {
"faultstring":"Execution of ConnectorCallout Logging-Extension failed. Reason: Connector returned error statuscode=500",
"detail": {
"errorcode":"steps.connectorcallout.ExecutionFailed"
}
}
}
Dowody w dziennikach rozszerzeń
Jeśli są jakieś szczegóły dotyczące tego rodzaju błędu, zobaczysz je we wpisach w dzienniku rozszerzenia. Ten komunikat o błędzie, zwrócony przez usługę Cloud Pub/Sub, jest spowodowany nieprawidłowym identyfikatorem projektu.
details: 'Project does not exist: example-test-12345'
Błędy w konfiguracji zasady ExtensionCallout
Te błędy występują, gdy zasada ExtensionCallout jest nieprawidłowo skonfigurowana, np. z powodu błędu składni konfiguracji zasady lub nieprawidłowych kluczy lub wartości konfiguracji. W zależności od konfiguracji zasady błędy te mogą przyjmować 2 formy:
Nieprawidłowe wartości oceniane przez zasób zewnętrzny
Może się to zdarzyć, gdy błąd konfiguracji wydawał się prawidłowy dla rozszerzenia, ale był nieprawidłowy dla zasobu zewnętrznego. Jeśli na przykład rozszerzenie przekaże do Cloud Spanner nieprawidłowy identyfikator bazy danych, usługa Cloud Spanner zwróci błąd, który zostanie zapisany w dzienniku rozszerzenia:
details: 'Database not found: projects/example-test-123456/instances/spanner-extension-example-db/databases/my-business-d'Może się to zdarzyć również w przypadku nieprawidłowego kodu JSON konfiguracji w elemencie
<Input>zasady. W przypadku niektórych rozszerzeń część kodu JSON jest przetwarzana przez rozszerzenie, a część jest przekazywana do zasobu. Na przykład kod JSON konfiguracji rozszerzenia Cloud Logging zawiera obiektmetadata, którego zawartość jest przekazywana do Cloud Logging. Nieprawidłowe nazwy kluczy, np.typzamiasttype, mogą powodować zwracanie błędów przez zasób zewnętrzny, które pojawiają się jako wpisy w dzienniku rozszerzenia:details: 'Resource type cannot be empty'Nieprawidłowe wartości oceniane przez rozszerzenie
Te błędy obejmują błędy składni w częściach kodu JSON elementu
<Input>ocenianych przez zasadę, błędy w nazwie działania w elemencie<Action>itp. Te błędy zwykle pojawiają się w narzędziu Trace, ale nie w dziennikach rozszerzeń.
Dowody w narzędziu Trace
W edytorze proxy te błędy zwykle będą wyświetlane jako błąd na poziomie 4xx- lub
5xx. Edytor proxy nie wyświetli jednak żadnych szczegółów
dotyczących przyczyny błędu, poza informacją, że rozszerzenie zwróciło błąd. Ten błąd pojawia się w narzędziu Trace, gdy w rozszerzeniu
Cloud Firestore występuje błąd w nazwie działania.
{
"fault":{
"faultstring":"Execution of ConnectorCallout Add-User-Data failed. Reason: Connector returned error statuscode=404","detail":
{
"errorcode":"steps.connectorcallout.ExecutionFailed"
}
}
}
Dowody w dziennikach rozszerzeń
Gdy konfiguracja zasady spowoduje błąd przetwarzania w zasobie zewnętrznym, błąd zwykle pojawi się w dzienniku.
Błędy związane z żądaniem rozszerzenia do zasobu
Jest to błąd, w którym żądanie do zasobu zewnętrznego nie powiodło się z przyczyn niezwiązanych z rozszerzeniem.
Wyobraź sobie na przykład, że używasz rozszerzenia Cloud Spanner do dodawania wiersza do bazy danych, ale wartość klucza podstawowego wiersza jest już używana w istniejącym wierszu. Usługa Cloud Spanner zwróci do rozszerzenia błąd, który zostanie dodany do dziennika rozszerzenia.
Dowody w narzędziu Trace
W edytorze proxy te błędy zwykle będą wyświetlane jako błąd na poziomie 4xx-
lub 5xx. Edytor proxy nie wyświetli jednak żadnych
szczegółów dotyczących przyczyny błędu, poza informacją, że rozszerzenie zwróciło błąd.
{
"fault":{
"faultstring":"Execution of ConnectorCallout Add-User-Data failed. Reason: Connector returned error statuscode=404",
"detail":{
"errorcode":"steps.connectorcallout.ExecutionFailed"
}
}
}
Dowody w dziennikach rozszerzeń
Dziennik zwykle zawiera wpisy z komunikatami z samego zasobu zewnętrznego. Poniższy komunikat logu z Cloud Spanner opisuje błąd istniejącej wartości klucza podstawowego.
details: 'Row [jonesy42] in table user already exists'