Problemi noti di Apigee

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

Le sezioni seguenti descrivono i problemi noti di Apigee. Nella maggior parte dei casi, i problemi elencati verranno risolti in una release futura.

Problemi noti vari di Edge

Le sezioni seguenti descrivono vari problemi noti di Edge.

Area Problemi noti
La scadenza della cache genera un valore cachehit errato

Quando la variabile di flusso cachehit viene utilizzata dopo il criterio LookupCache, a causa del modo in cui vengono inviati i punti di debug per il comportamento asincrono, LookupPolicy compila l'oggetto DebugInfo prima dell'esecuzione del callback, generando un errore.

Soluzione:ripeti la procedura (effettua la seconda chiamata) subito dopo la prima chiamata.

L'impostazione del criterio InvalidateCache PurgeChildEntries su true non funziona correttamente

L'impostazione di PurgeChildEntries nel criterio InvalidateCache dovrebbe eliminare solo i valori dell'elemento KeyFragment, ma cancella l'intera cache.

Soluzione alternativa: utilizza il criterio KeyValueMapOperations per eseguire l'iterazione del versionamento della cache e aggirare la necessità di annullare la convalida della cache.

Le richieste di deployment contemporanee per un proxy API o SharedFlow possono comportare uno stato incoerente nel server di gestione in cui vengono mostrate più revisioni come di cui è stato eseguito il deployment.

Questo può accadere, ad esempio, quando vengono eseguite esecuzioni simultanee di una pipeline di deployment CI/CD utilizzando revisioni diverse. Per evitare questo problema, evita di eseguire il deployment di proxy API o SharedFlow prima del completamento dell'attuale deployment.

Soluzione alternativa:evita i deployment simultanei di proxy API o SharedFlow.

Problemi noti con l'interfaccia utente di Edge

Le sezioni seguenti descrivono i problemi noti relativi all'interfaccia utente di Edge.

Area Problemi noti
Impossibile accedere alla pagina di amministrazione della zona SSO di Edge dalla barra di navigazione dopo che l'organizzazione è stata mappata a una zona di identità Quando colleghi un'organizzazione a una zona di identità, non puoi più accedere alla pagina di amministrazione della zona SSO di Edge dalla barra di navigazione di sinistra selezionando Amministrazione > SSO. Come soluzione alternativa, vai direttamente alla pagina utilizzando il seguente URL: https://apigee.com/sso

Problemi noti relativi al portale integrato

Le sezioni seguenti descrivono i problemi noti del portale integrato.

Area Problemi noti
SmartDocs
  • Apigee Edge supporta la specifica OpenAPI 3.0 quando crei specifiche utilizzando l'editor delle specifiche e pubblichi API utilizzando SmartDocs sul tuo portale, anche se un sottoinsieme di funzionalità non è ancora supportato.

    Ad esempio, le seguenti funzionalità della specifica OpenAPI 3.0 non sono ancora supportate:

    • Proprietà allOf per combinare ed estendere gli schemi
    • Riferimenti remoti

    Se nella specifica OpenAPI viene fatto riferimento a una funzionalità non supportata, in alcuni casi gli strumenti la ignorano, ma visualizzano comunque la documentazione di riferimento dell'API. In altri casi, una funzionalità non supportata causerà errori che impediscono il rendering corretto della documentazione di riferimento dell'API. In entrambi i casi, dovrai modificare la specifica OpenAPI per evitare di utilizzare la funzionalità non supportata finché non sarà supportata in una release futura.

    Nota: poiché l'editor delle specifiche è meno restrittivo di SmartDocs durante il rendering della documentazione di riferimento dell'API, potresti riscontrare risultati diversi tra gli strumenti.

  • Quando utilizzi Prova questa API nel portale, l'intestazione Accept è impostata su application/json indipendentemente dal valore impostato per consumes nella specifica OpenAPI.
  • 138438484: Non sono supportati più server.
Provider di identità SAML La disconnessione singola (SLO) con il provider di identità SAML non è supportata per i domini personalizzati. Per attivare un dominio personalizzato con un provider di identità SAML, lascia vuoto il campo URL di disconnessione quando configuri le impostazioni SAML.
Amministratore del portale
  • Al momento non sono supportati gli aggiornamenti simultanei del portale (ad esempio modifiche a pagine, temi, CSS o script) da parte di più utenti.
  • Se elimini una pagina di documentazione di riferimento dell'API dal portale, non è possibile ricrearla. Dovrai eliminare e aggiungere nuovamente il prodotto API e rigenerare la documentazione di riferimento dell'API.
  • Quando configuri i criteri di sicurezza dei contenuti, l'applicazione completa delle modifiche può richiedere fino a 15 minuti.
  • Quando personalizzi il tema del portale, l'applicazione completa delle modifiche potrebbe richiedere fino a 5 minuti.
Funzionalità del portale
  • La ricerca verrà integrata nel portale integrato in una versione futura.

Problemi noti di Edge for Private Cloud

Le sezioni seguenti descrivono i problemi noti di Edge for Private Cloud.

Area Problemi noti
Edge for Private Cloud 4.52.02 e 4.53.00

Quando utilizzi il criterio SetOauthV2Info, se AccessToken non può essere risolto in una variabile o è nullo, il criterio genera un errore del datastore:

{
              "fault": {
                "faultstring": "Error while accessing datastore;Please retry later",
                "detail": {
                  "errorcode": "datastore.ErrorWhileAccessingDataStore"
                }
              }
            }
            

Questo comportamento è diverso da quello delle versioni precedenti di Apigee, in cui uno scenario simile attivava un errore "invalid_access_token":

{
              "fault": {
                "faultstring": "Invalid Access Token",
                "detail": {
                  "errorcode": "keymanagement.service.invalid_access_token"
                }
              }
            }
            

Per ovviare al problema, aggiungi un criterio RaiseFault al proxy per simulare il messaggio di errore precedente. Questo criterio RaiseFault può essere eseguito quando la variabile del token di accesso è null. Vedi il seguente esempio:

<!-- Sample Raise Fault Policy --->
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<RaiseFault async="false" continueOnError="false" enabled="true" name="RaiseFault-MissingAccessToken">
    <DisplayName>RaiseFault-MissingAccessToken</DisplayName>
    <Properties/>
    <FaultResponse>
        <Set>
            <Headers/>
            <Payload contentType="application/json">{"fault":{"faultstring":"Invalid Access Token","detail":{"errorcode":"keymanagement.service.invalid_access_token"}}}</Payload>
            <StatusCode>500</StatusCode>
            <ReasonPhrase>Internal Server Error</ReasonPhrase>
        </Set>
    </FaultResponse>
    <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
</RaiseFault>

La norma RaiseFault può essere aggiunta condizionatamente prima della norma SetOauthV2Info nel flusso del proxy, come mostrato nell'esempio seguente:

<Step>
  <!-- Execute RaiseFault policy if access_token flow variable is null -->
  <Condition>access_token = null</Condition>
  <Name>RaiseFault-MissingAccessToken</Name>
</Step>
<Step>
  <!-- Execute SetOAuthV2Info policy if access_token flow variable is null -->
  <Condition>access_token != null</Condition>
  <Name>SetOAuthV2Info</Name>
</Step>

Apigee rilascerà una patch per ripristinare il comportamento sopra indicato per le versioni 4.52.02 e 4.53.00 di Edge for Private Cloud.

Aggiornamento di Edge for Private Cloud 4.52.02

Quando aggiorni Edge for Private Cloud dalla versione 4.51.00, 4.52.00 o 4.52.01 alla versione 4.52.02, tieni presente che l'impatto sulle API di gestione e di runtime sarà maggiore.

Questo impatto si verifica dopo l'aggiornamento dei nodi Cassandra e dura fino all'aggiornamento di tutti i nodi dell'elaboratore di messaggi e del server di gestione.

In questi casi, si prevede un impatto in una delle seguenti aree:

  • API di runtime che aggiornano il token OAuth
  • API di gestione che elencano le app per sviluppatori
  • API di gestione che elencano i prodotti

Apigee pubblicherà la documentazione di aggiornamento aggiornata per Edge for Private Cloud 4.52.02 che risolve questo problema.

Aggiornamento di Mint per Edge for Private Cloud 4.52.01

Questo problema riguarda solo chi utilizza MINT o ha attivato MINT nelle installazioni di Edge per il cloud privato.

Componente interessato:edge-message-processor

Problema: se hai attivato la monetizzazione e stai installando la versione 4.52.01 come installazione nuova o esegui l'upgrade da versioni precedenti di Private Cloud, riscontrerai un problema con gli elaboratori di messaggi. Si verificherà un aumento graduale del numero di thread aperti che porterà all'esaurimento delle risorse. La seguente eccezione viene visualizzata nel file system.log di edge-message-processor:

Error injecting constructor, java.lang.OutOfMemoryError: unable to create new native thread
Vulnerabilità HTTP/2 di Apigee

Di recente è stata scoperta una vulnerabilità di tipo DoS (denial of service) in più implementazioni del protocollo HTTP/2 (CVE-2023-44487), inclusa Apigee Edge per Private Cloud. La vulnerabilità potrebbe causare un attacco DoS della funzionalità di gestione delle API di Apigee. Per ulteriori dettagli, consulta il Bollettino sulla sicurezza di Apigee GCP-2023-032.

I componenti del router e del server di gestione Edge per il Private Cloud sono esposti a internet e possono essere potenzialmente vulnerabili. Sebbene HTTP/2 sia abilitato sulla porta di gestione d'altri componenti specifici di Edge per il cloud privato, nessuno di questi componenti è esposto a internet. Nei componenti non Edge, come Cassandra, Zookeeper e altri, HTTP/2 non è abilitato. Ti consigliamo di seguire i seguenti passaggi per risolvere la vulnerabilità di Edge per il private cloud:

Segui questi passaggi se utilizzi Edge Private Cloud 4.51.00.11 o versioni successive:

  1. Aggiorna il server di gestione:

    1. Su ogni nodo del server di gestione, apri /opt/apigee/customer/application/management-server.properties
    2. Aggiungi questa riga al file delle proprietà:
      conf_webserver_http2.enabled=false
    3. Riavvia il componente del server di gestione:
      apigee-service edge-management-server restart
  2. Aggiorna l'elaboratore dei messaggi:

    1. Su ogni nodo del processore di messaggi, apri /opt/apigee/customer/application/message-processor.properties
    2. Aggiungi questa riga al file delle proprietà:
      conf_webserver_http2.enabled=false
    3. Riavvia il componente dell'elaboratore dei messaggi:
      apigee-service edge-message-processor restart
  3. Aggiorna il router:

    1. Su ogni nodo del router, apri /opt/apigee/customer/application/router.properties
    2. Aggiungi questa riga al file delle proprietà:
      conf_webserver_http2.enabled=false
    3. Riavvia il componente dell'elaboratore dei messaggi:
      apigee-service edge-router restart
  4. Aggiorna QPID:

    1. Su ogni nodo QPID, apri /opt/apigee/customer/application/qpid-server.properties
    2. Aggiungi questa riga al file delle proprietà:
      conf_webserver_http2.enabled=false
    3. Riavvia il componente dell'elaboratore dei messaggi:
      apigee-service edge-qpid-server restart
  5. Aggiorna Postgres:

    1. Su ogni nodo Postgres, apri /opt/apigee/customer/application/postgres-server.properties
    2. Aggiungi questa riga al file delle proprietà:
      conf_webserver_http2.enabled=false
    3. Riavvia il componente dell'elaboratore dei messaggi:
      apigee-service edge-postgres-server restart

Segui questi passaggi se utilizzi versioni di Edge for Private Cloud precedenti alla 4.51.00.11:

  1. Aggiorna il server di gestione:

    1. Su ogni nodo del server di gestione, apri /opt/apigee/customer/application/management-server.properties
    2. Aggiungi le seguenti due righe al file delle proprietà:
      conf_webserver_http2.enabled=false
      conf/webserver.properties+http2.enabled=false
    3. Riavvia il componente del server di gestione:
      apigee-service edge-management-server restart
  2. Aggiorna l'elaboratore dei messaggi:

    1. Su ogni nodo del processore di messaggi, apri /opt/apigee/customer/application/message-processor.properties
    2. Aggiungi le seguenti due righe al file delle proprietà:
      conf_webserver_http2.enabled=false
      conf/webserver.properties+http2.enabled=false
    3. Riavvia il componente dell'elaboratore dei messaggi:
      apigee-service edge-message-processor restart
  3. Aggiorna il router:

    1. Su ogni nodo del router, apri /opt/apigee/customer/application/router.properties
    2. Aggiungi le seguenti due righe al file delle proprietà:
      conf_webserver_http2.enabled=false
      conf/webserver.properties+http2.enabled=false
    3. Riavvia il componente dell'elaboratore dei messaggi:
      apigee-service edge-router restart
  4. Aggiorna QPID:

    1. Su ogni nodo QPID, apri /opt/apigee/customer/application/qpid-server.properties
    2. Aggiungi le seguenti due righe al file delle proprietà:
      conf_webserver_http2.enabled=false
      conf/webserver.properties+http2.enabled=false
    3. Riavvia il componente dell'elaboratore dei messaggi:
      apigee-service edge-qpid-server restart
  5. Aggiorna Postgres:

    1. Su ogni nodo Postgres, apri /opt/apigee/customer/application/postgres-server.properties
    2. Aggiungi le seguenti due righe al file delle proprietà:
      conf_webserver_http2.enabled=false
      conf/webserver.properties+http2.enabled=false
    3. Riavvia il componente dell'elaboratore dei messaggi:
      apigee-service edge-postgres-server restart
Upgrade di Postgresql durante l'aggiornamento alla versione 4.52

Apigee-postgresql ha problemi con l'upgrade dalla versione 4.50 o 4.51 di Edge for Private Cloud alla versione 4.52. I problemi si verificano principalmente quando il numero di tabelle è superiore a 500.

Puoi controllare il numero totale di tabelle in Postgres eseguendo la query SQL riportata di seguito:

select count(*) from information_schema.tables

Soluzione alternativa: quando esegui l'aggiornamento di Apigee Edge 4.50.00 o 4.51.00 alla versione 4.52.00, assicurati di eseguire il passaggio preliminare prima di eseguire l'upgrade di Apigee-postgresql.

Criterio LDAP

149245401: le impostazioni del pool di connessioni LDAP per JNDI configurate tramite la risorsa LDAP non vengono applicate e i valori predefiniti di JNDI causano connessioni monouso ogni volta. Di conseguenza, le connessioni vengono aperte e chiuse ogni volta per un solo utilizzo, creando un numero elevato di connessioni all'ora al server LDAP.

Soluzione:

Per modificare le proprietà del pool di connessioni LDAP, segui questi passaggi per impostare una modifica globale in tutti i criteri LDAP.

  1. Crea un file di proprietà di configurazione se non esiste già:
    /opt/apigee/customer/application/message-processor.properties
  2. Aggiungi quanto segue al file (sostituisci i valori delle proprietà JNDI (Java Naming and Directory Interface) in base ai requisiti di configurazione della risorsa 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. Assicurati che il file /opt/apigee/customer/application/message-processor.properties sia di proprietà di apigee:apigee.
  4. Riavviare ogni elaboratore di messaggi.

Per verificare che le proprietà JNDI del pool di connessioni vengano applicate, puoi eseguire un tcpdump per osservare il comportamento del pool di connessioni LDAP nel tempo.

Latenza elevata nell'elaborazione delle richieste

139051927: le alte latenze di elaborazione dei proxy rilevate nel Message Processor influiscono su tutti i proxy API. I sintomi includono ritardi di 200-300 ms nei tempi di elaborazione rispetto ai tempi di risposta dell'API normali e possono verificarsi in modo casuale anche con TPS ridotti. Ciò può accadere quando sono presenti più di 50 server di destinazione con cui un elaboratore di messaggi effettua connessioni.

Causa principale: gli elaboratori dei messaggi mantengono una cache che mappa l'URL del server di destinazione all'oggetto HTTPClient per le connessioni in uscita ai server di destinazione. Per impostazione predefinita, questo valore è impostato su 50, che potrebbe essere troppo basso per la maggior parte dei deployment. Quando un deployment ha più combinazioni di org/env in una configurazione e un numero elevato di server di destinazione che superano i 50, gli URL dei server di destinazione continuano a essere espulsi dalla cache, causando latenze.

Convalida: per determinare se l'espulsione dell'URL del server di destinazione sta causando il problema di latenza, cerca la parola chiave "onEvict" o "Eviction" nei file system.log di Message Processor. La loro presenza nei log indica che gli URL dei server di destinazione vengono eliminati dalla cache HTTPClient perché le dimensioni della cache sono troppo ridotte.

Soluzione alternativa: per le versioni 19.01 e 19.06 di Edge for Private Cloud, puoi modificare e configurare la cache HTTPClient, /opt/apigee/customer/application/message-processor.properties:

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

Quindi riavvia il processore di messaggi. Apporta le stesse modifiche per tutti gli elaboratori di messaggi.

Il valore 500 è un esempio. Il valore ottimale per la configurazione deve essere maggiore del numero di server di destinazione a cui si connette l'elaboratore dei messaggi. L'impostazione di un valore più elevato per questa proprietà non ha effetti collaterali e l'unico impatto sarà un miglioramento dei tempi di elaborazione delle richieste proxy dell'elaborazione dei messaggi.

Nota: Edge for Private Cloud versione 50.00 ha l'impostazione predefinita 500.

Più voci per le mappe chiave-valore

157933959: gli inserimenti e gli aggiornamenti simultanei della stessa mappa chiave/valore (KVM) limitata all'ambito dell'organizzazione o dell'ambiente causano dati incoerenti e aggiornamenti persi.

Nota: questa limitazione si applica solo a Edge per il cloud privato. Edge per il cloud pubblico e ibrido non presenta questa limitazione.

Per una soluzione alternativa in Edge for Private Cloud, crea la KVM nell'apiproxyambito.