Znane problemy z Apigee

Wyświetlasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
Informacje

W sekcjach poniżej opisaliśmy znane problemy związane z Apigee. W większości przypadków wymienione problemy zostaną rozwiązane w przyszłej wersji.

Inne znane problemy z Edge

W sekcjach poniżej opisaliśmy różne znane problemy z Edge.

Obszar Znane problemy
Wygaśnięcie pamięci podręcznej powoduje nieprawidłową wartość cachehit

Gdy zmienna przepływu cachehit jest używana po polityce LookupCache, ze względu na sposób wysyłania punktów debugowania w przypadku zachowania asynchronicznego, polityka LookupPolicy wypełnia obiekt DebugInfo przed wykonaniem wywołania zwrotnego, co powoduje błąd.

Obejście: powtórz proces (nawiązywanie drugiego połączenia) bezpośrednio po pierwszym połączeniu.

Ustawienie zasady PurgeChildEntries Nieważna pamięć podręczna na Prawda nie działa prawidłowo

Ustawienie wartości PurgeChildEntries w zasadzie InvalidateCache powinno spowodować usunięcie tylko wartości elementu KeyFragment, ale usuwa całą pamięć podręczną.

Rozwiązanie: użyj polityki KeyValueMapOperations, aby iterować wersjonowanie pamięci podręcznej i ominąć konieczność unieważniania pamięci podręcznej.

Równoczesne żądania wdrożenia w przypadku SharedFlow lub interfejsu API proxy mogą powodować niespójny stan na serwerze zarządzania, na którym widoczne są liczne wdrożone wersje.

Może się tak zdarzyć, gdy równolegle działają różne wersje potoku wdrożeniowego CI/CD. Aby uniknąć tego problemu, nie wdrażaj zasobów proxy API ani SharedFlow przed zakończeniem bieżącego wdrożenia.

Rozwiązanie: unikaj jednoczesnych wdrożeń proxy interfejsu API lub SharedFlow.

Znane problemy z interfejsem Edge

W tych sekcjach opisano znane problemy z interfejsem Edge.

Powierzchnia Znane problemy
Po zmapowaniu organizacji na strefę tożsamości nie można uzyskać dostępu do strony administrowania strefą logowania Edge SSO z paska nawigacyjnego Gdy połączysz organizację ze strefą tożsamości, utracisz dostęp do strony Administrowanie strefą logowania na serwerach brzegowych za pomocą lewego paska nawigacyjnego – wybierz Administrator > Logowanie jednokrotne. Aby obejść ten problem, otwórz stronę bezpośrednio, korzystając z tego adresu URL: https://apigee.com/sso

Znane problemy z zintegrowanym portalem

W poniższych sekcjach opisaliśmy znane problemy związane z zintegrowanym portalem.

Obszar Znane problemy
SmartDocs
  • Apigee Edge obsługuje specyfikację OpenAPI 3.0, gdy tworzysz specyfikacje za pomocą edytora specyfikacji i publikujesz interfejsy API za pomocą SmartDocs w portalu, choć część funkcji nie jest jeszcze obsługiwana.

    Na przykład te funkcje specyfikacji OpenAPI 3.0 nie są jeszcze obsługiwane:

    • allOfwłaściwości do łączenia i rozszerzania schematów
    • odwołania zdalne.

    Jeśli w specyfikacji OpenAPI jest nawiązanie do funkcji, której nie obsługujemy, narzędzia mogą ją zignorować, ale nadal renderować dokumentację referencyjną interfejsu API. W innych przypadkach nieobsługiwana funkcja spowoduje błędy, które uniemożliwią renderowanie dokumentacji referencyjnej interfejsu API. W obu przypadkach musisz zmodyfikować specyfikację OpenAPI, aby uniknąć używania funkcji, która nie jest obsługiwana, dopóki nie zostanie obsługiwana w przyszłej wersji.

    Uwaga: podczas renderowania dokumentacji referencyjnej interfejsu API edytor specyfikacji jest mniej restrykcyjny niż SmartDocs, więc wyniki uzyskane za pomocą tych narzędzi mogą się różnić.

  • Gdy używasz opcji Wypróbuj ten interfejs API na portalu, nagłówek Accept jest ustawiony na application/json niezależnie od wartości consumes w specyfikacji OpenAPI.
  • 138438484: Wiele serwerów nie jest obsługiwanych.
Dostawca tożsamości SAML Wylogowanie jednokrotne (SLO) z dostawcą tożsamości SAML nie jest obsługiwane w przypadku domen niestandardowych. Aby włączyć domenę niestandardową z dostawcą tożsamości SAML, podczas konfigurowania ustawień SAML pozostaw puste pole URL wylogowywania.
Administrator portalu
  • Jednoczesne aktualizowanie portalu (np. strony, motywu, szablonu CSS lub skryptu) przez wielu użytkowników nie jest obecnie obsługiwane.
  • Jeśli usuniesz stronę dokumentacji referencyjnej API z portalu, nie będzie można jej ponownie utworzyć. Musisz usunąć i ponownie dodać produkt API, a następnie wygenerować dokumentację referencyjną API.
  • Podczas konfigurowania zasad bezpieczeństwa treści pełne zastosowanie zmian może potrwać do 15 minut.
  • Gdy dostosujesz motyw portalu, wprowadzenie zmian może potrwać do 5 minut.
Funkcje portalu
  • Wyszukiwarka zostanie zintegrowana z integrowanym portalem w jednej z kolejnych wersji.

Znane problemy z Edge for Private Cloud

W poniższych sekcjach opisaliśmy znane problemy z Edge for Private Cloud.

Obszar Znane problemy
Aktualizacja Edge for Private Cloud 4.52.02

Gdy zaktualizujesz Edge for Private Cloud z wersji 4.51.00, 4.52.00 lub 4.52.01 do wersji 4.52.02, należy się spodziewać dodatkowych zmian w interfejsach API czasu wykonywania i zarządzania.

Ten wpływ występuje po zaktualizowaniu węzłów Cassandra i trwa do momentu zaktualizowania wszystkich węzłów procesora wiadomości i serwera zarządzania.

W takiej sytuacji możesz spodziewać się wpływu na jeden z tych obszarów:

  • Interfejsy API w czasie wykonywania odświeżające token OAuth
  • Interfejsy API do zarządzania zawierające aplikacje programistów
  • Interfejsy API do zarządzania służące do wyświetlania produktów

Firma Apigee opublikuje zaktualizowaną dokumentację aktualizacji Edge for Private Cloud 4.52.02, która rozwiązuje ten problem.

Aktualizacja Mint w Edge for Private Cloud 4.52.01

Ten problem dotyczy tylko użytkowników korzystających z MINT lub którzy mają MINT włączone w instalacjach Edge for Private Cloud.

Komponent, którego dotyczy problem: edge-message-processor

Problem: jeśli masz włączoną monetyzację i instalujesz wersję 4.52.01 jako nową lub aktualizujesz poprzednią wersję Private Cloud, napotkasz problem z procesorami wiadomości. Liczba otwartych wątków będzie stopniowo wzrastać, co doprowadzi do wyczerpania zasobów. W pliku system.log w procesie edge-message-processor pojawia się ten wyjątek:

Error injecting constructor, java.lang.OutOfMemoryError: unable to create new native thread
Luka w zabezpieczeniach protokołu HTTP/2 w usłudze Apigee

W wielu implementacjach protokołu HTTP/2 (CVE-2023-44487), w tym w Apigee Edge for Private Cloud, wykryto ostatnio podatność na atak typu DoS. Ta luka może prowadzić do ataku typu DoS na funkcję zarządzania interfejsami API Apigee. Więcej informacji znajdziesz w biuletynie o zabezpieczeniach Apigee GCP-2023-032.

Komponenty routera i serwera zarządzania Edge for Private Cloud są dostępne w internecie i mogą być potencjalnie podatne na ataki. Chociaż protokół HTTP/2 jest włączony na porcie zarządzania innych komponentów Edge w Edge dla Private Cloud, żaden z tych komponentów nie jest dostępny w internecie. W przypadku komponentów innych niż Edge, takich jak Cassandra, Zookeeper i inne, HTTP/2 nie jest włączone. Aby rozwiązać problem z luką w Edge dla Private Cloud, wykonaj te czynności:

Jeśli używasz Edge Private Cloud w wersji 4.51.00.11 lub nowszej, wykonaj te czynności:

  1. Aktualizowanie serwera zarządzania:

    1. Na każdym węźle serwera zarządzania otwórz /opt/apigee/customer/application/management-server.properties
    2. Dodaj ten wiersz do pliku właściwości:
      conf_webserver_http2.enabled=false
    3. Ponownie uruchom komponent serwera zarządzania:
      apigee-service edge-management-server restart
  2. Zaktualizuj procesor wiadomości:

    1. Na każdym węźle procesora wiadomości otwórz /opt/apigee/customer/application/message-processor.properties
    2. Dodaj ten wiersz do pliku właściwości:
      conf_webserver_http2.enabled=false
    3. Ponownie uruchom komponent procesora wiadomości:
      apigee-service edge-message-processor restart
  3. Aktualizowanie routera:

    1. Na każdym routerze otwórz /opt/apigee/customer/application/router.properties
    2. Dodaj ten wiersz do pliku właściwości:
      conf_webserver_http2.enabled=false
    3. Ponownie uruchom komponent procesora wiadomości:
      apigee-service edge-router restart
  4. Aktualizowanie QPID:

    1. Na każdym węźle QPID otwórz /opt/apigee/customer/application/qpid-server.properties
    2. Dodaj ten wiersz do pliku właściwości:
      conf_webserver_http2.enabled=false
    3. Ponownie uruchom komponent procesora wiadomości:
      apigee-service edge-qpid-server restart
  5. Aktualizacja Postgres:

    1. Na każdym węźle Postgres otwórz /opt/apigee/customer/application/postgres-server.properties
    2. Dodaj ten wiersz do pliku właściwości:
      conf_webserver_http2.enabled=false
    3. Ponownie uruchom komponent procesora wiadomości:
      apigee-service edge-postgres-server restart

Jeśli używasz Edge for Private Cloud w wersji starszej niż 4.51.00.11, wykonaj te czynności:

  1. Aktualizowanie serwera zarządzania:

    1. Na każdym węźle serwera zarządzania otwórz /opt/apigee/customer/application/management-server.properties
    2. Dodaj do pliku właściwości te 2 wiersze:
      conf_webserver_http2.enabled=false
      conf/webserver.properties+http2.enabled=false
    3. Ponownie uruchom komponent serwera zarządzania:
      apigee-service edge-management-server restart
  2. Zaktualizuj procesor wiadomości:

    1. Na każdym węźle procesora wiadomości otwórz /opt/apigee/customer/application/message-processor.properties
    2. Dodaj do pliku właściwości te 2 wiersze:
      conf_webserver_http2.enabled=false
      conf/webserver.properties+http2.enabled=false
    3. Ponownie uruchom komponent procesora wiadomości:
      apigee-service edge-message-processor restart
  3. Aktualizowanie routera:

    1. Na każdym routerze otwórz /opt/apigee/customer/application/router.properties
    2. Dodaj do pliku właściwości te 2 wiersze:
      conf_webserver_http2.enabled=false
      conf/webserver.properties+http2.enabled=false
    3. Ponownie uruchom komponent procesora wiadomości:
      apigee-service edge-router restart
  4. Aktualizowanie QPID:

    1. Na każdym węźle QPID otwórz /opt/apigee/customer/application/qpid-server.properties
    2. Dodaj do pliku właściwości te 2 wiersze:
      conf_webserver_http2.enabled=false
      conf/webserver.properties+http2.enabled=false
    3. Ponownie uruchom komponent procesora wiadomości:
      apigee-service edge-qpid-server restart
  5. Aktualizacja Postgres:

    1. Na każdym węźle Postgres otwórz /opt/apigee/customer/application/postgres-server.properties
    2. Dodaj do pliku właściwości te 2 wiersze:
      conf_webserver_http2.enabled=false
      conf/webserver.properties+http2.enabled=false
    3. Ponownie uruchom komponent procesora wiadomości:
      apigee-service edge-postgres-server restart
Uaktualnienie PostgresQL podczas aktualizacji do wersji 4.52

W przypadku usługi Apigee-postgresql występują problemy z aktualizacją z wersji 4.50 lub 4.51 Edge for Private Cloud do wersji 4.52. Problemy występują głównie wtedy, gdy liczba tabel przekracza 500.

Łączną liczbę tabel w Postgres możesz sprawdzić, wykonując to zapytanie SQL:

select count(*) from information_schema.tables

Rozwiązanie: jeśli aktualizujesz Apigee Edge 4.50.00 lub 4.51.00 do wersji 4.52.00, przed uaktualnieniem Apigee-postgresql wykonaj ten krok wstępny.

Zasady dotyczące LDAP

149245401: Ustawienia puli połączeń LDAP dla JNDI skonfigurowane za pomocą zasobu LDAP nie są odzwierciedlane, a domyślne wartości JNDI powodują, że połączenia są używane tylko raz. W rezultacie połączenia są otwierane i zamykane za każdym razem, gdy są używane, co powoduje dużą liczbę połączeń z serwerem LDAP na godzinę.

Obejście:

Aby zmienić właściwości puli połączeń LDAP, wykonaj te czynności, aby wprowadzić zmianę globalną we wszystkich zasadach LDAP.

  1. Utwórz plik właściwości konfiguracji, jeśli jeszcze nie istnieje:
    /opt/apigee/customer/application/message-processor.properties
  2. Dodaj do pliku te informacje (zamień wartości właściwości interfejsu Java Naming and Directory Interface [JNDI] zgodnie z wymaganiami konfiguracji zasobu LDAP):
    bin_setenv_ext_jvm_opts="-Dcom.sun.jndi.ldap.connect.pool.maxsize=20
    -Dcom.sun.jndi.ldap.connect.pool.prefsize=2
    -Dcom.sun.jndi.ldap.connect.pool.initsize=2
    -Dcom.sun.jndi.ldap.connect.pool.timeout=120000
    -Dcom.sun.jndi.ldap.connect.pool.protocol=ssl"
  3. Upewnij się, że plik /opt/apigee/customer/application/message-processor.properties należy do użytkownika apigee:apigee.
  4. Uruchom ponownie każdy procesor wiadomości.

Aby sprawdzić, czy właściwości JNDI puli połączeń zaczęły działać, możesz wykonać polecenie tcpdump, aby obserwować zachowanie puli połączeń LDAP na przestrzeni czasu.

Wysoki czas przetwarzania żądania

139051927: Wysokie opóźnienia przetwarzania przez serwer proxy znalezione w przetwarzaczu wiadomości wpływają na wszystkie serwery proxy interfejsu API. Objawy to opóźnienia w przetwarzaniu o 200–300 ms w porównaniu z normalnym czasem odpowiedzi interfejsu API, które mogą występować losowo nawet przy niskim wskaźniku TPS. Może się to zdarzyć, gdy ponad 50 celowych serwerów, z którymi łączą się procesory wiadomości,

Przyczyna źródłowa: procesory wiadomości przechowują pamięć podręczną, która mapuje adres URL docelowego serwera na obiekt HTTPClient na potrzeby połączeń wychodzących na serwery docelowe. Domyślnie to ustawienie jest skonfigurowane jako 50, co może być za niskie w przypadku większości wdrożeń. Jeśli w ramach wdrożenia występuje wiele kombinacji organizacji/środowiska w ustawieniach oraz duża liczba serwerów docelowych, których łączna liczba przekracza 50, adresy URL serwerów docelowych są stale usuwane z pamięci podręcznej, co powoduje opóźnienia.

Weryfikacja: Aby sprawdzić, czy wykluczanie adresu URL docelowego serwera powoduje problem z opóźnieniem, przeszukaj pliki system.logs usługi Message Processor pod kątem obecności słowa kluczowego „onEvict” lub „Eviction”. Ich obecność w logach wskazuje, że adresy URL docelowych serwerów są usuwane z pamięci podręcznej HTTPClient, ponieważ jej rozmiar jest zbyt mały.

Rozwiązanie: w przypadku Edge for Private Cloud w wersjach 19.01 i 19.06 możesz edytować i konfigurować pamięć podręczną HTTPClient: /opt/apigee/customer/application/message-processor.properties

conf/http.properties+HTTPClient.dynamic.cache.elements.size=500

Następnie uruchom ponownie przetwarzacz wiadomości. Wprowadź te same zmiany we wszystkich przetwarzaczach wiadomości.

Wartość 500 to przykład. Optymalna wartość dla Twojej konfiguracji powinna być większa niż liczba docelowych serwerów, z którymi ma się łączyć procesor wiadomości. Ustawienie tej właściwości na wyższy poziom nie powoduje żadnych skutków ubocznych. Jedynym efektem będzie skrócenie czasu przetwarzania żądań proxy przez procesor wiadomości.

Uwaga: w Edge dla Private Cloud w wersji 50.00 domyślnie ustawiona jest wartość 500.

Wiele wpisów w przypadku map par klucz-wartość

157933959: jednoczesne wstawianie i aktualizowanie tej samej mapy klucz-wartość (KVM) ograniczonej do poziomu organizacji lub środowiska powoduje niespójność danych i utratę aktualizacji.

Uwaga: to ograniczenie dotyczy tylko Edge for Private Cloud. Edge dla chmury publicznej i hybrydowej nie ma tego ograniczenia.

Aby obejść ten problem w Edge for Private Cloud, utwórz KVM w zakresie apiproxy.