Problemi noti

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:

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 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.