Problemi noti

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:

google-endpoints==4.8.0
google-endpoints-api-management==1.11.1
# Newer versions of rsa module are incompatible with Python 2.7
rsa==4.5; python_version < '3'

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.