Questa pagina contiene problemi noti in Cloud Endpoints Frameworks.
Java e Python
Questa sezione descrive i problemi noti che interessano sia il linguaggio Java che il Python tutte le versioni di Endpoints Frameworks.
Timeout massimo della richiesta
Per le API che utilizzano Endpoints Frameworks versione 2, il numero massimo di richieste è 60 secondi.
Migrazione di Endpoints Frameworks
Quando esegui la migrazione dell'API a Endpoints Frameworks versione 2, devi
di eseguire il deployment dell'API
in una nuova app di App Engine. Se riutilizzi il vecchio
richieste che iniziano con il percorso della versione 1, /_ah/spi
, dell'app App Engine
potrebbe essere instradato al backend di versione 2 di Endpoints Frameworks,
prevede che i percorsi inizino con /_ah/api
.
Prestazioni scadenti delle istanze con scalabilità automatica
App Engine offre tre tipi di scalabilità: di base, manuale e automatica. Endpoints Frameworks utilizza thread in background, che la scalabilità automatica non sono supportate. 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)
La versione 1 di Endpoints Frameworks per Java presenta un bug che genera un quando viene annotata un'enumerazione. 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 come 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
incompatibile con google-endpoints-api-management
. Per aggirare questo problema,
assicurati che google-endpoints
e google-endpoints-api-management
vengono visualizzate 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
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. La versione esatta della libreria Django-6 che causa
il conflitto è al momento sconosciuto.