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.
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 del file Service Config. Quando utilizzi le configurazioni dei servizi create dopo il 5 dicembre 2024, gli errori saranno simili ai seguenti:
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.
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 versione 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.