Questa pagina contiene i problemi noti di Cloud Endpoints Frameworks.
Java e Python
Questa sezione descrive i problemi noti che interessano sia le versioni Java sia quelle Python di Endpoints Frameworks.
Timeout massimo della richiesta
Per le API che utilizzano la versione 2 di Endpoints Frameworks, il timeout massimo della richiesta è 60 secondi.
Migrazione di Endpoints Frameworks
Quando esegui la migrazione dell'API alla versione 2 di Endpoints Frameworks, 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 inoltrate al backend della versione 2 di Endpoints Frameworks, che si aspetta che i percorsi inizino con /_ah/api
.
Prestazioni scadenti nelle istanze con scalabilità automatica
App Engine offre tre tipi di scalabilità: di base, manuale e automatica. Endpoints Frameworks utilizza thread in background, non supportati dalle istanze con scalabilità automatica. I framework Endpoints devono comunicare con i servizi Google per controllare le quote e segnalare l'attività delle API, tra le altre cose. Per le istanze di scalabilità di base e manuale, questa comunicazione viene eseguita da un thread in background per evitare di rallentare le richieste. Tuttavia, le istanze con scalabilità automatica non supportano i thread in background. La comunicazione con i servizi Google avviene invece 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."
Nei framework Endpoints, devi rimuovere la barra al termine nel decoratore del metodo Python o nell'annotazione del metodo Java.
Java
Questa sezione descrive i problemi noti di Endpoints Frameworks per Java.
Endpoints Frameworks Java precedenti (v1)
Endpoints Frameworks versione 1 per Java presenta un bug che genera un'eccezione quando un enum è annotato. Questo problema è causato da una dipendenza da una vecchia versione di Jackson. Per risolvere il problema, devi eseguire la migrazione alla versione 2 di Endpoints Frameworks.
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 visualizzare un messaggio di errore ImportError: cannot import name locked_file
. Il problema si verifica quando pip
installa una versione del pacchetto oauth2client
incompatibile con google-endpoints-api-management
. Per risolvere il problema,
assicurati che le righe google-endpoints
e google-endpoints-api-management
appaiano per prime nel file requirements.txt
, ad esempio:
Aggiungi altri requisiti dopo queste righe.
L'API restituisce errori 404
durante i test locali
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 versioni tra la libreria python-future
,
inclusa sia nella libreria Endpoints Frameworks per Python
che nella libreria Django-six. Al momento non è nota la versione esatta della libreria Django-six che causa il conflitto.