Antywzorce migracji z Apigee Edge do Apigee X

Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
Informacje

Jako obecny klient Apigee Edge możesz przenieść swoją instalację do Apigee X, aby korzystać z nowych możliwości lub innej dostępności regionalnej.

Na tej stronie opisujemy antywzorce w konfiguracji, z którymi należy się zająć przed migracją do Apigee X, a także opisujemy inne zmiany w działaniu, o których warto wiedzieć przed migracją.

Szersza lista antywzorców Apigee Edge zawiera informacje o praktykach użytkowania, których w każdym przypadku należy unikać. Na tej stronie opisujemy specyficzne niezalecane metody użycia, które mogą zablokować migrację. Rozwiąż je teraz, aby uniknąć problemów podczas migracji do Apigee X.

Aplikacje bez usług API

Podsumowanie Wymaga zmian po stronie klienta? Rozwiązanie

Istnieją aplikacje bez usług API.

Różnica między Apigee Edge a Apigee X:

Apigee Edge Apigee X
Można skonfigurować aplikację i dane logowania, które nie są powiązane z żadną usługą API. Ta aplikacja ma efektywnie dostęp do wszystkich usług API. Każda aplikacja musi być skonfigurowana pod kątem dostępu do co najmniej jednej usługi API. Nie ma sposobu, aby pośrednio zapewnić dostęp do wszystkich usług API. Możesz skonfigurować aplikację tak, aby miała dostęp do wszystkich usług interfejsu API, ale musisz to zrobić bezpośrednio.
Nie.

Rozwiązanie: aplikacje bez usług API

Powiąż wszystkie dane logowania do aplikacji z co najmniej jedną usługą API. Więcej informacji na ten temat znajdziesz w artykule o rejestrowaniu aplikacji i zarządzaniu kluczami interfejsu API.

Łatwą metodą jest przypisanie każdej aplikacji dostępu do wszystkich usług API. Będzie to odpowiednik możliwości Apigee Edge. Wyzwanie polega na tym, że chcesz stosować podejście „jak najmniejszych uprawnień”, wtedy musisz określić minimalną listę usług API, do których muszą mieć dostęp poszczególne dane logowania do aplikacji. Możesz to przeanalizować za pomocą raportów Apigee Edge Analytics na podstawie identyfikatora klienta.

Pamięć podręczna bez wygasania

Podsumowanie Wymaga zmian po stronie klienta? Rozwiązanie

Pamięć podręczna nie ma daty ważności.

Różnica między Apigee Edge a Apigee X:

Apigee Edge Apigee X
Umożliwia tworzenie, aktualizowanie i usuwanie deskryptorów zasobów pamięci podręcznej. Nie obsługuje tworzenia, aktualizowania ani usuwania deskryptorów zasobów pamięci podręcznej.
Nie

Rozwiązanie: pamięć podręczna bez wygasania

Ustaw czas ważności wszystkich pamięci podręcznych.

Wyrażenia filtra JSONPath w ścieżkach nieokreślonych

Podsumowanie Wymaga zmian po stronie klienta? Rozwiązanie

W przypadku ścieżek niedefinicyjnych wysyłanie zapytań o wynik wyrażeń filtra nie jest częścią specyfikacji JSONPath. Patrz https://goessner.net/articles/JsonPath/.

Różnica między Apigee Edge a Apigee X:

Podczas poruszania się po tej przykładowej strukturze

{
    "books": [
      {
        "name": "A",
      },
      {
        "name": "B",
      }
    ]
}

Z wyrażeniem $..books[?(@.name == 'A')][0],

Apigee Edge Apigee X
Wyniki: ‘{"name": "A"}’ Wyniki: []

Z wyrażeniem $..books[?(@.name == 'A')][0].name,

Apigee Edge Apigee X
Wyniki: "A" Wyniki: []
Tak

Rozwiązanie: wyrażenia filtra JSONPath w ścieżkach nieokreślonych

Znajdź i zastąp zapytania, których dotyczy problem.

Wyrażenia JSONPath dla indeksów, które nie istnieją

Podsumowanie Wymaga zmian po stronie klienta? Rozwiązanie

Wyrażenia JSONPath z indeksem, który nie istnieje, działają inaczej w Apigee X i w Apigee Edge. Apigee X zwraca błąd PathNotFoundException, gdy nie znaleziono ścieżki.

Różnica między Apigee Edge a Apigee X:

Podczas poruszania się po tej przykładowej strukturze

{
    "books": [
      {
        "name": "A",
      },
      {
        "name": "B",
      }
    ]
}

Z wyrażeniem $.books[3],

Apigee Edge Apigee X
Wyniki: null Wyświetla PathNotFoundException błąd
Tak

Rozwiązanie: wyrażenia JSONPath dla indeksów, które nie istnieją

Znajdź i zastąp zapytania, których dotyczy problem.

Wyrażenia JSONPath z indeksem tablicy, które nie zwracają obiektu tablicy

Podsumowanie Wymaga zmian po stronie klienta? Rozwiązanie

Wyrażenia JSONPath z indeksem tablicy lub wycinkami zwracają obiekt tablicy w Apigee X.

Różnica między Apigee Edge a Apigee X:

Podczas poruszania się po tej przykładowej strukturze

{
    "books": [
      {
        "name": "A",
      },
      {
        "name": "B",
      }
    ]
}

Z wyrażeniem $.books,

Apigee Edge Apigee X
Wyniki: {“name”:”A”, “name”: “B”} Wyniki: [{“name”:”A”, “name”: “B”}]

Z wyrażeniem $.books[-1],

Apigee Edge Apigee X
Wyniki: {“name”: “B”} Wyniki: [{“name”: “B”}]

Z wyrażeniem $.books[-2:],

Apigee Edge Apigee X
Wyniki: {“name”:”A”, “name”: “B”} Wyniki: [{“name”:”A”, “name”: “B”}]
Tak

Rozwiązanie: wyrażenia JSONPath z indeksem tablicy nie zwracają obiektu tablicy

Znajdź i zastąp wyrażenia, które po uaktualnieniu mogą zwracać inne wyniki.

Ograniczenia nazw magazynu kluczy

Podsumowanie Wymaga zmian po stronie klienta? Rozwiązanie

Nazwy magazynów kluczy Apigee X mogą zawierać tylko litery, cyfry i łączniki. Nazwy tymczasowego magazynu kluczy nie nakładają tych ograniczeń.

Nie

Rozwiązanie: ograniczenia nazw magazynu kluczy

Sprawdź nazwy magazynów kluczy i w razie potrzeby zaktualizuj nazwy, aby usunąć nieobsługiwane znaki.

Wdrożono wiele ścieżek podstawowych na potrzeby serwera proxy interfejsu API

Podsumowanie Wymaga zmian po stronie klienta? Rozwiązanie

W środowisku wdrażanych jest wiele wersji serwera proxy interfejsu API, a każda z nich ma inną ścieżkę bazową.

Różnica między Apigee Edge a Apigee X:

Apigee Edge Apigee X
Obsługuje wdrażanie wielu wersji serwera proxy interfejsu API, gdzie każda wersja może mieć inną ścieżkę bazową. Nie obsługuje wdrażania wielu wersji serwera proxy interfejsu API, mimo że serwer proxy ma różne ścieżki bazowe.
Nie

Rozwiązanie: wdrożono wiele ścieżek podstawowych dla serwera proxy interfejsu API

Zaktualizuj wszystkie pakiety, tak aby w środowisku była wdrożona tylko jedna wersja pakietu, bez względu na ścieżkę bazową.

Niezgodne wiadomości HTTP

Podsumowanie Wymaga zmian po stronie klienta? Rozwiązanie

Klienty lub serwer proxy interfejsu API wysyłają wiadomości (żądania lub odpowiedzi), które nie są zgodne ze standardem HTTP. Dotyczy to na przykład nieprawidłowych nazw nagłówków, duplikatów w niektórych nagłówkach z ograniczeniami itd.

Nie możesz przejść na Apigee X, jeśli wykonanie interfejsu API zawiera co najmniej 1 z tych błędów:

  • INVALID_CHARACTERS_IN_HEADER
  • MISSING_COLON
  • MULTIPLE_CONTENT_LENGTH
  • CONTENT_LENGTH_NOT_INTEGER
  • INVALID_UPGRADE
  • URL_HEADER_SIZE_TOO_LONG
  • BODY_NOT_ALLOWED
  • UNSUPPORTED_HTTP_VERSION
  • ZERO_CONTENT_LENGTH_FOR_POST_OR_PUT
  • UNSUPPORTED_RESPONSE_PREFIX
Być może.

Rozwiązanie: niezgodne wiadomości HTTP

Przed migracją do Apigee X musisz naprawić wszystkie błędy w protokołach HTTP. Jeśli błąd pochodzi z aplikacji klienckiej, musisz poprosić jej dewelopera o rozwiązanie problemu.

Nieprawidłowy czas wygaśnięcia tokena OAuth 2.0

Podsumowanie Wymaga zmian po stronie klienta? Rozwiązanie

Limity ważności tokenów OAuth 2.0 wykraczają poza zalecany zakres.

Różnica między Apigee Edge a Apigee X:

Apigee Edge Apigee X
Obecnie nie jest egzekwowane żadne ograniczenie czasu ważności tokena OAuth 2.0, ale planujemy wymuszanie stosowania tej zasady. Zapoznaj się ze wskazówkami w sekcji dotyczącej protokołu OAuth na stronie Limity. Musisz ustawić token dostępu i czas wygaśnięcia tokena odświeżania dla OAuth 2.0. Obsługiwane zakresy to:
  • 180 sekund <= czas wygaśnięcia tokena dostępu OAuth 2.0 <= 30 dni
  • 1 dzień <= wygaśnięcie tokena odświeżania OAuth 2.0 <= 2 lata
Nie

Rozwiązanie: nieprawidłowy czas wygaśnięcia tokena OAuth 2.0

Użyj zasady OAuthV2 i określ czas ważności w <ExpiresIn> oraz <RefreshTokenExpiresIn>.

Przekroczono limity produktów

Podsumowanie Wymaga zmian po stronie klienta? Rozwiązanie

Konfiguracja Apigee Edge jest niezgodna ze zdefiniowanymi limitami usług. Niektóre limity usług, które są udokumentowane, ale nie są egzekwowane w Apigee Edge, są egzekwowane w Apigee X.

Nie

Rozwiązanie: przekroczono limity produktów

Przed migracją do Apigee X popraw użycie, które przekracza limity usług.

Zasady wywołania usługi z specyfikatorami połączeń zarówno punktu końcowego, jak i docelowej ścieżki

Podsumowanie Wymaga zmian po stronie klienta? Rozwiązanie

W zasadzie ServiceCallout element <LocalTargetConnection> powinien zawierać elementy <APIProxy> i <ProxyEndpoint> albo <Path>, ale nie oba te elementy jednocześnie. Więcej informacji znajdziesz w opisie elementu <LocalTargetConnection>.

Apigee Edge dokumentuje to wymaganie, ale go nie egzekwuje. Apigee X przestaje przetwarzać dane, jeśli napotka obiekt <LocalTargetConnection> w obu konfiguracjach.

Nie

Rozwiązanie: zasady dotyczące wywołania usługi z specyfikatorami połączenia zarówno punktu końcowego, jak i docelowej ścieżki

Sprawdź konfiguracje zasad ServiceCallout i usuń wszystkie niezgodne konfiguracje <LocalTargetConnection>.

Ograniczenia dotyczące nazw serwera docelowego

Podsumowanie Wymaga zmian po stronie klienta? Rozwiązanie

Nazwy serwerów docelowych Apigee X mogą zawierać tylko litery, cyfry, łączniki i kropki. Nazwy serwerów brzegowych nie nakładają tych ograniczeń.

Nie

Rozwiązanie: ograniczenia nazw serwera docelowego

Sprawdź nazwy serwerów docelowych i w razie potrzeby zaktualizuj nazwy, aby usunąć nieobsługiwane znaki.

Certyfikat próbny na hoście wirtualnym

Podsumowanie Wymaga zmian po stronie klienta? Rozwiązanie

Co najmniej jeden host wirtualny używa certyfikatu „bezpłatnej wersji próbnej” udostępnianego przez Apigee. Sprawi to, że host wirtualny będzie odpowiadać na żądania wysyłane do domen takich jak ORG-ENV.apigee.net.

Różnica między Apigee Edge a Apigee X:

Apigee Edge Apigee X
Automatycznie konfiguruje „domyślny” host vhost do obsługi nazwy domeny w postaci ORG-ENV.apigee.net. Dostępny jest certyfikat z symbolem wieloznacznym – nazywany „bezpłatnym certyfikatem próbnym”, który pozwala na użycie protokołu TLS w tych domenach. Starsze domeny Apigee w formie ORG-ENV.apigee.net nie są dostępne w Apigee X. Musisz skonfigurować własną nazwę domeny i odpowiednio udostępnić certyfikaty.
Tak

Rozwiązanie: certyfikat próbny na hoście wirtualnym

Musisz skonfigurować własną domenę i odpowiednio udostępnić certyfikaty.

Każdą aplikację kliencką, która korzysta ze starszej nazwy domeny z formularza ORG-ENV.apigee.net, należy zmodyfikować w taki sposób, aby wywoływała nową domenę.

Nierozpoznany DNS

Podsumowanie Wymaga zmian po stronie klienta? Rozwiązanie

Docelowe punkty końcowe mają niepotwierdzone nazwy domen.

Różnica między Apigee Edge a Apigee X:

Apigee Edge Apigee X
Jeśli rozpoznawanie nazw DNS nie powiedzie się, Apigee dołączy .apigee.com do nazwy domeny, a serwer DNS zostanie rozpoznany z kodem odpowiedzi 4xx. Jeśli rozpoznawanie nazw DNS nie powiedzie się, Apigee nie wykona żądania i zwróci kod odpowiedzi 5xx.
Nie

Rozwiązanie: nierozstrzygnięty DNS

Zaktualizuj docelowy punkt końcowy, podając prawidłową nazwę domeny.