Questa pagina contiene i problemi noti di Cloud Endpoints Frameworks.
Java e Python
Questa sezione descrive i problemi noti che interessano le versioni Java e Python di Endpoints Frameworks.
Timeout massimo della richiesta
Per le API che utilizzano Endpoints Frameworks versione 2, il timeout massimo della richiesta è di 60 secondi.
Migrazione di Endpoints Frameworks
Quando esegui la migrazione dell'API a Endpoints Frameworks versione 2, devi
eseguire il deployment dell'API in una nuova app App Engine. Se riutilizzi la vecchia
app App Engine, le richieste che iniziano con il percorso della versione 1, /_ah/spi
,
potrebbero essere indirizzate al backend di Endpoints Frameworks versione 2, che
prevede che i percorsi inizino con /_ah/api
.
Rendimento scarso sulle istanze con scalabilità automatica
App Engine offre tre tipi di scalabilità: base, manuale e automatica. Endpoints Frameworks utilizza thread in background, che le istanze di scalabilità automatica non supportano. Endpoints Frameworks deve comunicare con i servizi Google per controllare le quote e segnalare l'attività API, tra le altre cose. Per le istanze di scalabilità di base e manuale, un thread in background esegue questa comunicazione per evitare di rallentare le richieste. Le istanze di scalabilità automatica, tuttavia, non supportano i thread in background. La comunicazione con i servizi Google avviene durante la richiesta. Endpoints Frameworks funziona ancora, ma con prestazioni potenzialmente ridotte.
A causa di questo problema, ti consigliamo di configurare un altro tipo di scalabilità. Consulta le seguenti sezioni della documentazione di App Engine:
I percorsi con barre finali non sono supportati
Quando esegui il deployment di un documento OpenAPI utilizzando gcloud endpoints services deploy
,
Cloud Endpoints rifiuta i documenti OpenAPI che includono percorsi con una barra
finale, ad esempio:
paths: "/echo/": post: description: "Echo back a given message."
In Endpoints Frameworks, devi rimuovere la barra finale nel decoratore del metodo Python o nell'annotazione del metodo Java.
Java
Questa sezione descrive i problemi noti in Endpoints Frameworks per Java.
Cloud Endpoints Frameworks per Java - versione 1.0.14 o precedente
Include un problema per cui i nuovi campi nella configurazione del servizio Google causano l'errore della libreria Java di Cloud Endpoints Frameworks durante l'analisi della configurazione del servizio. Gli errori saranno simili ai seguenti quando utilizzi le configurazioni del servizio create dopo il 5 dicembre 2024:
Failed to parse the HTTP response as service configuration
com.google.api.config.ServiceConfigException: Failed to parse the HTTP response as service configuration
Per ulteriori informazioni sull'upgrade alla versione 1.0.15 o successive, consulta le note di rilascio.
Frameworks Java Endpoints legacy (v1)
Endpoints Frameworks versione 1 per Java ha un bug che genera un'eccezione quando viene annotata un'enumerazione. Questo problema è causato da una dipendenza da una vecchia versione di Jackson. Per risolvere questo problema, devi eseguire la migrazione a Endpoints Frameworks versione 2.
Python
Questa sezione descrive i problemi noti di Endpoints Frameworks per Python.
Messaggio di errore: ImportError: cannot import name locked_file
Quando esegui pip install
con un file requirements.txt
, potresti ricevere un messaggio di errore ImportError: cannot import name locked_file
. Il problema
si verifica quando pip
installa una versione del pacchetto oauth2client
che è
incompatibile con google-endpoints-api-management
. Per risolvere questo problema,
assicurati che le righe google-endpoints
e google-endpoints-api-management
vengano visualizzate per prime nel file requirements.txt
, ad esempio:
Aggiungi altri requisiti dopo queste righe.
L'API restituisce errori 404
durante il test in locale
Sintomo: tutti gli endpoint restituiscono 404
quando utilizzi dev_appserver.py
per testare la tua
API localmente, ma quando esegui il deployment dell'API in App Engine, gli
endpoint rispondono come previsto. Questo problema è stato osservato nelle applicazioni
che utilizzano la
libreria Django-six.
Questo problema è causato da un conflitto di versione tra la libreria python-future
,
inclusa sia nella libreria Endpoints Frameworks per Python
sia nella libreria Django-six. Al momento non è nota la versione esatta della libreria Django-six che causa
il conflitto.