Antywzorce migracji z Apigee Edge do Apigee X

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

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

Na tej stronie opisujemy antywzorce w konfiguracji, które musisz rozwiązać przed migracją do Apigee X, a także inne zmiany w działaniu, o których musisz wiedzieć przed migracją.

Szersza lista antywzorców Apigee Edge opisuje praktyki użycia, których należy unikać w każdym przypadku. Na tej stronie opisujemy konkretne praktyki, których nie zalecamy i które uniemożliwiają migrację. Rozwiąż te problemy, aby uniknąć problemów podczas migracji do Apigee X.

Aplikacje bez usług API

Podsumowanie Wymaga zmian po stronie klienta? Rozdzielczość

Istnieją aplikacje bez usług API.

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

Apigee Edge Apigee X
Możesz skonfigurować aplikację i dane logowania, które nie są powiązane z żadną usługą API. Ta aplikacja ma dostęp do wszystkich produktów API. Każda aplikacja musi być skonfigurowana tak, aby miała dostęp do co najmniej 1 produktu API. Nie ma możliwości udzielenia dostępu do wszystkich produktów API w sposób dorozumiany. Możesz skonfigurować aplikację tak, aby miała dostęp do wszystkich produktów interfejsu API, ale musisz to zrobić w sposób wyraźny.
Nie.

Rozwiązanie: aplikacje bez usług API

Powiąż każde dane logowania aplikacji z co najmniej 1 produktem interfejsu API. Więcej informacji o tym, jak to zrobić, znajdziesz w artykule Rejestrowanie aplikacji i zarządzanie kluczami interfejsu API.

Najprostszym sposobem jest przypisanie każdej aplikacji dostępu do wszystkich produktów API. Będzie to odpowiednik tego, co jest możliwe w Apigee Edge. Jeśli chcesz zastosować podejście „najmniejszych uprawnień”, musisz określić minimalną listę produktów API, do których dostęp muszą mieć poszczególne dane logowania aplikacji. Możesz to przeanalizować za pomocą raportów Apigee Edge Analytics na podstawie identyfikatora klienta.

Pamięć podręczna bez czasu wygaśnięcia

Podsumowanie Wymaga zmian po stronie klienta? Rozdzielczość

Pamięć podręczna nie ma czasu wygaśnięcia.

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

Apigee Edge Apigee X
Obsługuje 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 czasu wygaśnięcia

Ustaw czas wygaśnięcia wszystkich pamięci podręcznych.

Wyrażenia filtru JSONPath na ścieżkach nieokreślonych

Podsumowanie Wymaga zmian po stronie klienta? Rozdzielczość

W przypadku ścieżek nieokreślonych wysyłanie zapytań o wynik wyrażeń filtra nie jest częścią specyfikacji JSONPath. Więcej informacji znajdziesz na stronie 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",
      }
    ]
}

Wyrażenie $..books[?(@.name == 'A')][0]

Apigee Edge Apigee X
Dane wyjściowe: ‘{"name": "A"}’ Dane wyjściowe: []

Wyrażenie $..books[?(@.name == 'A')][0].name

Apigee Edge Apigee X
Dane wyjściowe: "A" Dane wyjściowe: []
Tak

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

znajdować i zastępować zapytania, których dotyczą te zmiany;

Wyrażenia JSONPath dla indeksów, które nie występują

Podsumowanie Wymaga zmian po stronie klienta? Rozdzielczość

Wyrażenia JSONPath z indeksem, który nie występuje, działają inaczej w Apigee X niż w Apigee Edge. Gdy ścieżka nie zostanie znaleziona, Apigee X zwraca błąd PathNotFoundException.

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

Podczas poruszania się po tej przykładowej strukturze

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

Wyrażenie $.books[3]

Apigee Edge Apigee X
Dane wyjściowe: null Wyjście: błąd PathNotFoundException
Tak

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

znajdować i zastępować zapytania, których dotyczą te zmiany;

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

Podsumowanie Wymaga zmian po stronie klienta? Rozdzielczość

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",
      }
    ]
}

Wyrażenie $.books

Apigee Edge Apigee X
Dane wyjściowe: {“name”:”A”, “name”: “B”} Dane wyjściowe: [{“name”:”A”, “name”: “B”}]

Wyrażenie $.books[-1]

Apigee Edge Apigee X
Dane wyjściowe: {“name”: “B”} Dane wyjściowe: [{“name”: “B”}]

Wyrażenie $.books[-2:]

Apigee Edge Apigee X
Dane wyjściowe: {“name”:”A”, “name”: “B”} Dane wyjściowe: [{“name”:”A”, “name”: “B”}]
Tak

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

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

Ograniczenia dotyczące nazwy magazynu kluczy

Podsumowanie Wymaga zmian po stronie klienta? Rozdzielczość

Nazwy magazynów kluczy Apigee X mogą zawierać tylko litery, cyfry i łączniki. Nazwy magazynów kluczy Edge nie podlegają tym ograniczeniom.

Nie

Rozwiązanie: ograniczenia dotyczące nazwy magazynu kluczy

Sprawdź nazwy magazynów kluczy i w razie potrzeby usuń z nich nieobsługiwane znaki.

Wdrożono wiele podstawowych ścieżek proxy interfejsu API

Podsumowanie Wymaga zmian po stronie klienta? Rozdzielczość

W środowisku jest wdrożonych wiele wersji proxy interfejsu API, a każda z nich ma inną ścieżkę podstawową.

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

Apigee Edge Apigee X
Obsługuje wdrażanie wielu wersji proxy interfejsu API, z których każda może mieć inną ścieżkę podstawową. Nie obsługuje wdrażania wielu wersji proxy interfejsu API, nawet jeśli proxy ma różne ścieżki podstawowe.
Nie

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

Zaktualizuj wszystkie pakiety, aby w środowisku była wdrażana tylko jedna wersja pakietu, niezależnie od ścieżki podstawowej.

Niezgodne wiadomości HTTP

Podsumowanie Wymaga zmian po stronie klienta? Rozdzielczość

Klienci lub proxy interfejsu API wysyłają wiadomości (żądania lub odpowiedzi), które nie są zgodne ze standardem HTTP. Na przykład nieprawidłowe nazwy nagłówków, duplikaty w niektórych nagłówkach podlegających ograniczeniom itp.

Nie możesz przeprowadzić migracji do Apigee X, jeśli podczas wykonywania interfejsu API wystąpi co najmniej jeden z tych błędów:

Błąd Szczegóły
INVALID_CHARACTERS_IN_HEADER W podanym nagłówku znaleziono co najmniej 1 niedozwolony znak. Prawidłowe nazwy nagłówków składają się z liter alfabetu łacińskiego, cyfr i myślników.
MISSING_COLON Brak znaku : (dwukropka) w parze nazwa nagłówka i wartość nagłówka.
MULTIPLE_CONTENT_LENGTH Podano wiele wartości nagłówka Content-Length.
CONTENT_LENGTH_NOT_INTEGER Wartość nagłówka Content-Length nie jest liczbą całkowitą.
INVALID_UPGRADE Nagłówek Upgrade powinien być używany tylko do włączania połączeń WebSocket, ale tak nie jest.
URL_HEADER_SIZE_TOO_LONG Łączny rozmiar adresu URL żądania i nagłówków przekracza maksymalny dozwolony rozmiar, który wynosi 15 KB.
BODY_NOT_ALLOWED Treść wiadomości jest niedozwolona w przypadku metod „GET”, „DELETE”, „TRACE”, „OPTIONS” i „HEAD”.
UNSUPPORTED_HTTP_VERSION Żądanie korzysta z wersji HTTP innej niż 1.1, która nie jest obsługiwana.
ZERO_CONTENT_LENGTH_FOR_POST_OR_PUT Dla metody „POST” lub „PUT” ustawiono wartość pola nagłówka Content-Length równą zero („0”).
UNSUPPORTED_RESPONSE_PREFIX W nagłówku odpowiedzi wystąpił nieobsługiwany prefiks nagłówka „X-Apigee-”.
Tak, być może.

Rozwiązanie: niezgodne wiadomości HTTP

Przed migracją do Apigee X musisz naprawić wszelkie błędy w protokołach HTTP. Jeśli błąd pochodzi z aplikacji klienta, musisz poprosić dewelopera tej aplikacji o jego naprawienie.

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

Podsumowanie Wymaga zmian po stronie klienta? Rozdzielczość

Limity wygaśnięcia tokena OAuth 2.0 wykraczają poza określony zakres.

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

Apigee Edge Apigee X
Obecnie nie jest wymuszane żadne ograniczenie czasu wygaśnięcia tokena OAuth 2.0, ale planujemy wprowadzić takie ograniczenie. Zapoznaj się z wytycznymi w sekcji OAuth na stronie Limity. Musisz ustawić czas wygaśnięcia tokena dostępu i tokena odświeżania dla OAuth 2.0. Obsługiwane zakresy:
  • 180 sekund <= czas wygaśnięcia tokena dostępu OAuth 2.0 <= 30 dni
  • 1 dzień <= czas wygaśnięcia 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 wygaśnięcia w elementach <ExpiresIn> i <RefreshTokenExpiresIn>.

Przekroczono limity produktów

Podsumowanie Wymaga zmian po stronie klienta? Rozdzielczość

Konfiguracja Apigee Edge jest niezgodna z określonymi limitami usług. Niektóre limity produktów, 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 skoryguj wszelkie przypadki wykorzystania przekraczające limity usługi.

Zasady ServiceCallout z specyfikatorami połączenia docelowego punktu końcowego i ścieżki

Podsumowanie Wymaga zmian po stronie klienta? Rozdzielczość

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

Apigee Edge dokumentuje ten wymóg, ale nie egzekwuje go. Apigee X przestaje przetwarzać, jeśli napotka <LocalTargetConnection> z obiektami konfiguracyjnymi.

Nie

Rozwiązanie: zasady ServiceCallout z określeniami połączenia docelowego punktu końcowego i ścieżki

Sprawdź konfiguracje zasad ServiceCallout i usuń wszystkie <LocalTargetConnection> konfiguracje, które nie są zgodne z zasadami.

Ograniczenia dotyczące nazwy serwera docelowego

Podsumowanie Wymaga zmian po stronie klienta? Rozdzielczość

Nazwy serwerów docelowych Apigee X mogą zawierać tylko litery, cyfry, łączniki i kropki. Nazwy serwerów docelowych Edge nie podlegają tym ograniczeniom.

Nie

Rozwiązanie: ograniczenia dotyczące nazwy serwera docelowego

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

Certyfikat próbny na hoście wirtualnym

Podsumowanie Wymaga zmian po stronie klienta? Rozdzielczość

Co najmniej 1 host wirtualny używa certyfikatu „bezpłatna wersja próbna” udostępnionego przez Apigee. Sprawia to, że host wirtualny odpowiada na żądania w domenach takich jak ORG-ENV.apigee.net.

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

Apigee Edge Apigee X
Automatycznie konfiguruje hosta wirtualnego „default” tak, aby obsługiwał nazwę domeny w formacie ORG-ENV.apigee.net. Istnieje certyfikat z symbolem wieloznacznym, zwany „bezpłatnym certyfikatem próbnym”, który umożliwia korzystanie z TLS w tych domenach. W Apigee X nie są dostępne starsze domeny Apigee w formacie ORG-ENV.apigee.net. 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żda aplikacja kliencka, która korzysta ze starszej nazwy domeny formularza ORG-ENV.apigee.net, musi zostać zmodyfikowana, aby wywoływać nową domenę.

Nierozstrzygnięte DNS

Podsumowanie Wymaga zmian po stronie klienta? Rozdzielczość

Docelowe punkty końcowe mają nierozwiązane nazwy domen.

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

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

Rozwiązanie: nierozpoznane nazwy DNS

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