En esta página, se incluyen problemas conocidos en Cloud Endpoints Frameworks.
Java y Python
En esta sección, se describen problemas conocidos que afectan a versiones de Endpoints Frameworks tanto de Java como de Python.
Tiempo de espera máximo de una solicitud
Para las API que usan la versión 2 de Endpoints Frameworks, el tiempo de espera máximo de la solicitud es de 60 segundos.
Migración de Endpoints Frameworks
Cuando migras tu API a la versión 2 de Endpoints Frameworks, debes implementar la API en una nueva app de App Engine. Si vuelves a usar la app antigua de App Engine, las solicitudes que comienzan con la ruta de la versión 1, /_ah/spi
, pueden enrutarse al backend de la versión 2 de Endpoints Frameworks, que espera que las rutas comiencen con /_ah/api
.
Rendimiento bajo en instancias de ajuste de escala automático
App Engine ofrece tres tipos de escalamiento: básico, manual y automático. Endpoints Frameworks usa subprocesos en segundo plano, que las instancias de ajuste de escala automático no admiten. Endpoints Frameworks debe comunicarse con otros servicios de Google a fin de verificar cuotas y también informar la actividad de la API, entre otras tareas. Para las instancias de ajuste de escala manual y básico, un subproceso en segundo plano realiza esta comunicación a fin de evitar una demora en las solicitudes. Sin embargo, las instancias de ajuste de escala automático no son compatibles con subprocesos en segundo plano. En cambio, la comunicación con los servicios de Google se produce durante la solicitud. Endpoints Frameworks funciona igual, pero con un rendimiento potencialmente menor.
Por este problema, tal vez te convenga configurar otro tipo de escalamiento. Consulta las siguientes secciones en la documentación de App Engine:
- Python: Tipos de escalamiento y clases de instancia
- Java: Tipos de escalamiento y clases de instancia
Las rutas con barras finales no son compatibles
Cuando implementas un documento de OpenAPI con gcloud endpoints services deploy
, Cloud Endpoints rechaza los documentos de OpenAPI que incluyen rutas con una barra final, por ejemplo:
paths: "/echo/": post: description: "Echo back a given message."
En Endpoints Frameworks, debes quitar la barra final del decorador del método de Python o la anotación del método de Java.
Java
En esta sección, se describen problemas conocidos en Endpoints Frameworks para Java.
Java Endpoints Frameworks heredada (v1)
La versión 1 de Endpoints Frameworks para Java tiene un error que produce una excepción cuando se anota un enumerador. Este problema lo causa una dependencia de una versión antigua de Jackson. Para sortear este problema, debes migrar a la versión 2 de Endpoints Frameworks.
Python
En esta sección, se describen problemas conocidos en Endpoints Frameworks para Python.
Mensaje de error: ImportError: cannot import name locked_file
Cuando ejecutas pip install
con un archivo requirements.txt
, puedes recibir un mensaje de error ImportError: cannot import name locked_file
. El problema se produce cuando pip
instala una versión del paquete oauth2client
que es incompatible con google-endpoints-api-management
. Para solucionar este problema, asegúrate de que las líneas google-endpoints
y google-endpoints-api-management
aparezcan primero en el archivo requirements.txt
, por ejemplo:
Agrega otros requisitos después de estas líneas.
La API muestra errores 404
cuando se la prueba de forma local
Síntoma: todos los extremos muestran 404
cuando usas dev_appserver.py
para probar la API de forma local, pero cuando implementas la API en App Engine, los extremos responden como se espera. Este problema se observó en aplicaciones que usan la biblioteca de Django-six.
Este problema se debe a un conflicto de versiones entre la biblioteca python-future
, que se incluye en la biblioteca de Endpoints Frameworks para Python y en la biblioteca de Django-six. Todavía no se conoce la versión exacta de la biblioteca de Django-six que causa este problema.