Anti-pattern di migrazione da Apigee Edge ad Apigee X

Stai visualizzando la documentazione di Apigee Edge.
Vai alla documentazione di Apigee X.
informazioni

In qualità di attuale cliente di Apigee Edge, potresti scegliere di eseguire la migrazione della tua installazione ad Apigee X per sfruttare nuove funzionalità o diverse disponibilità a livello regionale.

Questa pagina descrive gli anti-pattern della configurazione che dovrai risolvere prima di eseguire la migrazione ad Apigee X, nonché altre modifiche di comportamento di cui dovresti essere a conoscenza prima della migrazione.

L'elenco più ampio di antipattern Apigee Edge descrive le pratiche di utilizzo che dovrebbero essere evitate in ogni caso. Questa pagina descrive le pratiche di utilizzo specifiche non consigliate che bloccheranno una migrazione. Risolvi ora questi problemi per evitare problemi durante la migrazione ad Apigee X.

App senza prodotti API

Riepilogo Sono necessarie modifiche lato client? Risoluzione

Sono presenti app senza prodotto o prodotti API.

Differenza tra Apigee Edge e Apigee X:

Apigee Edge Apigee X
È possibile configurare un'app e una credenziale non associate ad alcun prodotto API. Questa app ha accesso in modo efficace a tutti i prodotti basati su API. Ogni app deve essere configurata per accedere ad almeno un prodotto API. Non è possibile fornire in modo implicito l'accesso a tutti i prodotti API. Puoi configurare un'app in modo che abbia accesso a tutti i prodotti API, ma è necessario farlo esplicitamente.
N.

Risoluzione: app senza prodotti API

Associa ogni credenziale dell'app ad almeno un prodotto API. Per maggiori informazioni su come eseguire questa operazione, consulta Registrare app e gestire le chiavi API.

Un percorso semplice è assegnare a ogni app l'accesso a tutti i prodotti API. Sarà l'equivalente di quanto possibile in Apigee Edge. La sfida consiste nell'adottare un approccio basato sul "privilegio minimo", quindi determinare l'elenco minimo di prodotti API a cui ogni credenziale dell'app deve avere accesso. Puoi analizzare questi dati con i report di analisi di Apigee Edge, basati sull'ID client.

Cache senza scadenza

Riepilogo Sono necessarie modifiche lato client? Risoluzione

Le cache non hanno una scadenza.

Differenza tra Apigee Edge e Apigee X:

Apigee Edge Apigee X
Supporta la creazione, l'aggiornamento e l'eliminazione dei descrittori delle risorse della cache. Non supporta la creazione, l'aggiornamento o l'eliminazione dei descrittori delle risorse della cache.
No

Soluzione: cache senza scadenza

Imposta una scadenza per tutte le cache.

JSONPath filtra le espressioni su percorsi non definiti

Riepilogo Sono necessarie modifiche lato client? Risoluzione

Per i percorsi non definitivi, eseguire query sul risultato di un'espressione di filtro non fa parte delle specifiche JSONPath. Vedi https://goessner.net/articles/JsonPath/.

Differenza tra Apigee Edge e Apigee X:

Quando esplori questa struttura di esempio,

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

Con l'espressione $..books[?(@.name == 'A')][0],

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

Con l'espressione $..books[?(@.name == 'A')][0].name,

Apigee Edge Apigee X
Output "A" Output []

Soluzione: JSONPath filtra le espressioni su percorsi non definiti

Trova e sostituisci le query interessate.

Espressioni JSONPath per indici non presenti

Riepilogo Sono necessarie modifiche lato client? Risoluzione

Le espressioni JSONPath con un indice non presente hanno comportamenti diversi in Apigee X rispetto ad Apigee Edge. Apigee X restituisce un errore PathNotFoundException quando il percorso non viene trovato.

Differenza tra Apigee Edge e Apigee X:

Quando esplori questa struttura di esempio,

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

Con l'espressione $.books[3],

Apigee Edge Apigee X
Output null Restituisce PathNotFoundException errore

Soluzione: espressioni JSONPath per indici non presenti

Trova e sostituisci le query interessate.

Espressioni JSONPath con un indice array che non restituiscono un oggetto array

Riepilogo Sono necessarie modifiche lato client? Risoluzione

Le espressioni JSONPath con sezioni o indice array restituiscono un oggetto array in Apigee X.

Differenza tra Apigee Edge e Apigee X:

Quando esplori questa struttura di esempio,

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

Con l'espressione $.books,

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

Con l'espressione $.books[-1],

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

Con l'espressione $.books[-2:],

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

Soluzione: le espressioni JSONPath con un indice array non restituiscono un oggetto array

Trova e sostituisci espressioni che potrebbero restituire risultati diversi dopo l'upgrade.

Limitazioni per i nomi dell'archivio chiavi

Riepilogo Sono necessarie modifiche lato client? Risoluzione

I nomi degli archivi chiavi Apigee X possono contenere solo lettere, numeri e trattini. I nomi degli archivi chiavi perimetrali non imponeno queste limitazioni.

No

Risoluzione: limitazioni relative ai nomi dell'archivio chiavi

Controlla i nomi degli archivi chiavi e aggiornali per rimuovere i caratteri non supportati, se necessario.

Più percorsi di base di cui è stato eseguito il deployment per un proxy API

Riepilogo Sono necessarie modifiche lato client? Risoluzione

Il deployment di più revisioni di un proxy API viene eseguito in un ambiente e ogni revisione ha un percorso di base diverso.

Differenza tra Apigee Edge e Apigee X:

Apigee Edge Apigee X
Supporta il deployment di più revisioni di un proxy API, in cui ogni revisione può avere un percorso di base diverso. Non supporta il deployment di più revisioni di un proxy API, anche se il proxy ha percorsi di base diversi.
No

Soluzione: più percorsi di base di cui è stato eseguito il deployment per un proxy API

Aggiorna tutti i bundle in modo che in un ambiente venga eseguito il deployment di una sola revisione di un bundle, indipendentemente dal percorso base.

Messaggi HTTP non conformi

Riepilogo Sono necessarie modifiche lato client? Risoluzione

I client o il proxy API inviano messaggi (richieste o risposte) non conformi allo standard HTTP. Ad esempio, nomi di intestazioni non validi, duplicati in alcune intestazioni limitate e così via.

Non puoi eseguire la migrazione ad Apigee X se l'esecuzione dell'API presenta uno o più dei seguenti errori:

  • 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
Sì, probabilmente.

Soluzione: messaggi HTTP non conformi

Devi correggere eventuali errori nei protocolli HTTP prima di eseguire la migrazione ad Apigee X. Se un errore ha origine da un'applicazione client, devi chiedere allo sviluppatore dell'app client di correggere il problema.

Ora di scadenza del token OAuth 2.0 non valida

Riepilogo Sono necessarie modifiche lato client? Risoluzione

I limiti di scadenza del token OAuth 2.0 non rientrano nell'intervallo prescritto.

Differenza tra Apigee Edge e Apigee X:

Apigee Edge Apigee X
Al momento non è applicato alcun vincolo relativo alla data di scadenza del token OAuth 2.0, ma è pianificata l'applicazione. Consulta le linee guida nella sezione OAuth della pagina Limiti. Devi impostare un token di accesso e aggiornare la data di scadenza del token per OAuth 2.0. Gli intervalli supportati sono:
  • 180 secondi <= scadenza del token di accesso OAuth 2.0 <= 30 giorni
  • 1 giorno <= scadenza del token di aggiornamento OAuth 2.0 <= 2 anni
No

Soluzione: data di scadenza del token OAuth 2.0 non valida

Utilizza il criterio OAuthV2 e specifica la data di scadenza in <ExpiresIn> e <RefreshTokenExpiresIn>.

Limiti prodotti superati

Riepilogo Sono necessarie modifiche lato client? Risoluzione

La configurazione di Apigee Edge non è conforme ai limiti di prodotto definiti. Alcuni limiti di prodotto documentati ma non applicati su Apigee Edge vengono applicati su Apigee X.

No

Soluzione: limiti di prodotti superati

Correggi l'utilizzo che supera i limiti del prodotto prima di eseguire la migrazione ad Apigee X.

Criteri ServiceCallout con identificatori di connessione sia dell'endpoint che della destinazione del percorso

Riepilogo Sono necessarie modifiche lato client? Risoluzione

Nelle norme di ServiceCallout, l'elemento <LocalTargetConnection> deve includere gli elementi <APIProxy> e <ProxyEndpoint> oppure l'elemento <Path>, ma non entrambi. Per maggiori informazioni, consulta l'elemento <LocalTargetConnection>.

Apigee Edge documenta questo requisito ma non lo applica. Apigee X interrompe l'elaborazione se rileva un <LocalTargetConnection> con entrambe le configurazioni.

No

Soluzione: i criteri ServiceCallout con identificatori di connessione sia dell'endpoint che della destinazione del percorso

Controlla le configurazioni dei criteri di ServiceCallout ed elimina tutte le configurazioni <LocalTargetConnection> non conformi.

Limitazioni relative ai nomi dei server di destinazione

Riepilogo Sono necessarie modifiche lato client? Risoluzione

I nomi dei server di destinazione Apigee X possono contenere solo lettere, numeri, trattini e punti. I nomi dei server di destinazione perimetrale non imporranno queste limitazioni.

No

Risoluzione: limitazioni relative ai nomi dei server di destinazione

Controlla i nomi dei server di destinazione e, se necessario, aggiornali per rimuovere i caratteri non supportati.

Certificato di prova in un host virtuale

Riepilogo Sono necessarie modifiche lato client? Risoluzione

Uno o più host virtuali utilizzano il certificato di "prova senza costi" fornito da Apigee. In questo modo l'host virtuale risponde alle richieste sui domini come ORG-ENV.apigee.net.

Differenza tra Apigee Edge e Apigee X:

Apigee Edge Apigee X
Configura automaticamente il vhost "predefinito" in modo da supportare un nome di dominio nel formato ORG-ENV.apigee.net. Esiste un certificato con caratteri jolly, chiamato "certificato della prova senza costi", che consente TLS su questi domini. I domini Apigee legacy del modulo ORG-ENV.apigee.net non sono disponibili in Apigee X. Devi configurare il tuo nome di dominio ed eseguire il provisioning dei certificati in modo appropriato.

Soluzione: certificato di prova in un host virtuale

Devi configurare il tuo dominio ed eseguire il provisioning dei certificati in modo appropriato.

Qualsiasi applicazione client che dipende dal nome di dominio legacy nel modulo ORG-ENV.apigee.net deve essere modificata in modo da chiamare il nuovo dominio.

DNS non risolto

Riepilogo Sono necessarie modifiche lato client? Risoluzione

Gli endpoint di destinazione hanno nomi di dominio non risolti.

Differenza tra Apigee Edge e Apigee X:

Apigee Edge Apigee X
Se la risoluzione DNS non va a buon fine, Apigee aggiunge .apigee.com al nome di dominio e il DNS viene risolto correttamente con un codice di risposta 4xx. Se la risoluzione DNS non va a buon fine, Apigee non esegue la richiesta e restituisce un codice di risposta 5xx.
No

Soluzione: DNS non risolto

Aggiorna l'endpoint di destinazione con un nome di dominio valido.