Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X. Informacje
Możesz debugować rozszerzenie przy użyciu komunikatów widocznych w 2 miejscach: w narzędziu do śledzenia i dziennikach rozszerzeń. Jeśli rozszerzenie nie działa, zidentyfikowanie problemu może czasem wymagać podania informacji z obu miejsc.
Narzędzie śledzenia Apigee Edge pozwala iteracyjnie testować i edytować kod serwera proxy interfejsu API w miarę jego tworzenia. Komunikaty śledzenia zawierają błędy kodu serwera proxy interfejsu API, w tym serwera proxy interfejsu API i konfiguracji zasad.
Błędy związane z rozszerzeniami, które pojawiają się w narzędziu do śledzenia, zwykle nie zawierają zbyt wielu szczegółów poza informacją o tym, które wywołanie rozszerzenia nie powiodło się wraz z kodem błędu HTTP. Jeśli nie znajdziesz tu nic przydatnego, najlepiej poszukaj w nim dziennika używanego rozszerzenia.
Rozszerzenia generują wpisy logu w czasie działania. Dzienniki rozszerzeń są dostępne tylko dla administratorów organizacji.
Te logi zawierają wpisy zwrócone 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 zasobów zewnętrznych, prawdopodobnie tutaj pojawi się błąd.
Dzienniki zawierają też wpisy z kodu wewnętrznego. Przeglądając dzienniki, pamiętaj, że niektóre wpisy nie mają związku z poprawianym błędem. Wpisy logu związane z rozszerzeniami zwykle zaczynają się od słowa
details
, 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ływy przetwarzania żądań rozszerzeń z zasady ExtensionCallout na serwerze proxy interfejsu API przechodzą przez rozszerzenie do zasobu zewnętrznego, a następnie z powrotem. Dlatego w każdym z tych miejsc może wystąpić błąd.
Wyświetlane błędy mogą należeć do tych kategorii.
Błędy w konfiguracji rozszerzenia
To konfiguracja przeprowadzana przez administratora organizacji podczas dodawania rozszerzenia do środowiska.
Jeśli na przykład skonfigurujesz rozszerzenie Cloud Logging z nieprawidłowym identyfikatorem projektu Google Cloud, Google Cloud Logging zwróci do tego rozszerzenia błąd. Szczegółowe informacje o tych błędach znajdziesz zwykle w dzienniku rozszerzenia.
Dowody w narzędziu do śledzenia
W edytorze serwera proxy te błędy są zwykle wyświetlane jako błąd na poziomie 4xx
lub 5xx
. Edytor serwera proxy nie wyświetli jednak żadnych informacji o przyczynie błędu oprócz informacji, ż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 logach rozszerzeń
Szczegółowe informacje o tym rodzaju błędu znajdziesz we wpisach w dzienniku rozszerzenia. Poniższy komunikat o błędzie zwracany przez usługę Cloud Pub/Sub jest wynikiem nieprawidłowego identyfikatora projektu.
details: 'Project does not exist: example-test-12345'
Błędy w konfiguracji zasad ExtensionCallout
Te błędy występują, gdy zasada ExtensionCallout jest nieprawidłowo skonfigurowana – może to być wynik błędu składni konfiguracji zasad albo nieprawidłowych kluczy konfiguracyjnych lub wartości. W zależności od konfiguracji zasady te błędy mogą mieć 2 rodzaje:
Nieprawidłowe wartości ocenione przez zasób zewnętrzny
Ten błąd może wystąpić, gdy błąd konfiguracji wydaje się prawidłowy w przypadku rozszerzenia, ale jest nieprawidłowy w przypadku zasobu zewnętrznego. Jeśli na przykład rozszerzenie przekaże do Cloud Spanner nieprawidłowy identyfikator bazy danych, Cloud Spanner zwróci błąd zarejestrowany w dzienniku rozszerzenia:
details: 'Database not found: projects/example-test-123456/instances/spanner-extension-example-db/databases/my-business-d'
Ten błąd może też wystąpić w przypadku nieprawidłowej konfiguracji w formacie JSON w elemencie
<Input>
zasady. W przypadku niektórych rozszerzeń część pliku JSON jest przetwarzana przez rozszerzenie, a część jest przekazywana do zasobu. Na przykład plik JSON z konfiguracją rozszerzenia Cloud Logging zawiera obiektmetadata
, którego zawartość jest przekazywana do Cloud Logging. Nieprawidłowe nazwy kluczy, takie jaktyp
zamiasttype
, mogą zwracać błędy z zasobu zewnętrznego, które są widoczne 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ładniowe w częściach kodu JSON ocenianych przez zasadę
<Input>
, literówki w nazwie działania w elemencie<Action>
itp. Te błędy zwykle pojawiają się w narzędziu do śledzenia, ale nie ma ich w dziennikach rozszerzeń.
Dowody w narzędziu do śledzenia
W edytorze serwera proxy te błędy są zwykle wyświetlane jako błąd na poziomie 4xx
lub 5xx
. Edytor serwera proxy nie wyświetli jednak żadnych informacji o przyczynie błędu oprócz informacji, że rozszerzenie zwróciło błąd. Ten błąd pojawia się w narzędziu do śledzenia w przypadku literówki w nazwie działania w rozszerzeniu Cloud Firestore.
{
"fault":{
"faultstring":"Execution of ConnectorCallout Add-User-Data failed. Reason: Connector returned error statuscode=404","detail":
{
"errorcode":"steps.connectorcallout.ExecutionFailed"
}
}
}
Dowody w logach rozszerzeń
Jeśli konfiguracja zasady powoduje błąd przetwarzania w zasobie zewnętrznym, zwykle jest on widoczny w dzienniku.
Błędy związane z żądaniem rozszerzenia dotyczące zasobu
To błąd polegający na tym, że żądanie do zasobu zewnętrznego nie powiodło się z powodów, które nie są związane z rozszerzeniem.
Załóżmy na przykład, że dodajesz wiersz do bazy danych za pomocą rozszerzenia Cloud Spanner, ale wartość klucza podstawowego tego wiersza jest już używana w istniejącym wierszu. Cloud Spanner zwróci do rozszerzenia błąd, co spowoduje dodanie go do logu rozszerzenia.
Dowody w narzędziu do śledzenia
W edytorze serwera proxy te błędy są zwykle wyświetlane jako błąd na poziomie 4xx
lub 5xx
. Edytor serwera proxy nie wyświetli jednak żadnych informacji o przyczynie błędu oprócz informacji, ż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 logach rozszerzeń
Dziennik zwykle zawiera wpisy z komunikatami z zasobu zewnętrznego. Poniższy komunikat logu z Cloud Spanner opisuje istniejący błąd podstawowej pary klucz-wartość.
details: 'Row [jonesy42] in table user already exists'