Problemas conocidos

Esta página contiene problemas conocidos de Cloud Endpoints Frameworks.

Java y Python

En esta sección se describen los problemas conocidos que afectan a las versiones de Java y Python de Endpoints Frameworks.

Tiempo de espera máximo de las solicitudes

En el caso de las APIs que usan Endpoints Frameworks versión 2, el tiempo de espera máximo de las solicitudes es de 60 segundos.

Migración de Endpoints Frameworks

Cuando migres tu API a la versión 2 de Endpoints Frameworks, debes desplegarla en una nueva aplicación de App Engine. Si reutilizas la aplicación de App Engine antigua, las solicitudes que empiecen por la ruta de la versión 1, /_ah/spi, podrían dirigirse al backend de la versión 2 de Endpoints Frameworks, que espera que las rutas empiecen por /_ah/api.

Rendimiento deficiente en instancias con escalado automático

App Engine ofrece tres tipos de escalado: básico, manual y automático. Endpoints Frameworks usa subprocesos en segundo plano, que no admiten las instancias de escalado automático. Endpoints Frameworks debe comunicarse con los servicios de Google para comprobar las cuotas e informar de la actividad de las APIs, entre otras cosas. En el caso de las instancias de escalado básico y manual, un subproceso en segundo plano realiza esta comunicación para evitar que se ralenticen las solicitudes. Sin embargo, las instancias de escalado automático no admiten subprocesos en segundo plano. En su lugar, la comunicación con los servicios de Google se produce durante la solicitud. Endpoints Frameworks sigue funcionando, pero es posible que su rendimiento se vea reducido.

Debido a este problema, puede que quieras configurar otro tipo de escalado. Consulta las siguientes secciones de la documentación de App Engine:

No se admiten rutas con barras diagonales al final

Cuando despliega un documento OpenAPI mediante gcloud endpoints services deploy, Cloud Endpoints rechaza los documentos OpenAPI que incluyen rutas con una barra al final. Por ejemplo:

paths:
  "/echo/":
    post:
      description: "Echo back a given message."

En Endpoints Frameworks, debes quitar la barra inclinada final del decorador de método de Python o de la anotación de método de Java.

Java

En esta sección se describen los problemas conocidos de Endpoints Frameworks para Java.

Cloud Endpoints Frameworks para Java (versión 1.0.14 o anterior)

Incluye un problema por el que los nuevos campos de la configuración de servicios de Google provocan que la biblioteca Java de Cloud Endpoints Frameworks falle al analizar la configuración de servicios. Los errores serán similares a los siguientes cuando se utilicen configuraciones de servicio creadas después del 5 de diciembre del 2024:

Failed to parse the HTTP response as service configuration
com.google.api.config.ServiceConfigException: Failed to parse the HTTP response as service configuration

Consulta las notas de la versión para obtener más información sobre cómo actualizar a la versión 1.0.15 o a una posterior.

Endpoints Frameworks de Java antiguos (v1)

La versión 1 de Endpoints Frameworks para Java tiene un error que genera una excepción cuando se anota un enum. Este problema se debe a una dependencia de una versión antigua de Jackson. Para solucionar este problema, debe migrar a la versión 2 de Endpoints Frameworks.

Python

En esta sección se describen los problemas conocidos de Endpoints Frameworks para Python.

Mensaje de error: ImportError: cannot import name locked_file

Cuando ejecutas pip install con un archivo requirements.txt, es posible que aparezca un mensaje de error ImportError: cannot import name locked_file. El problema se produce cuando pip instala una versión del paquete oauth2client que no es compatible con google-endpoints-api-management. Para solucionar este problema, asegúrate de que las líneas google-endpoints y google-endpoints-api-management aparezcan en primer lugar en tu archivo requirements.txt. Por ejemplo:

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'

Añade otros requisitos después de estas líneas.

La API devuelve errores 404 al hacer pruebas de forma local

Síntoma: Todos los endpoints devuelven 404 cuando usas dev_appserver.py para probar tu API de forma local, pero cuando la implementas en App Engine, los endpoints responden como se espera. Este problema se ha observado en aplicaciones que usan la biblioteca Django-six.

Este problema se debe a un conflicto de versiones entre la biblioteca python-future, que se incluye tanto en la biblioteca Endpoints Frameworks para Python como en la biblioteca Django-six. Por el momento, no se conoce la versión exacta de la biblioteca Django-six que provoca el conflicto.