Problemas conhecidos

Esta página contém problemas conhecidos no Cloud Endpoints Frameworks.

Java e Python

Nesta seção, descrevemos os problemas conhecidos que afetam as versões do Endpoints Frameworks para Java e Python.

Tempo limite máximo da solicitação

As APIs que usam o Endpoints Frameworks versão 2 têm tempo limite máximo de 60 segundos para solicitações.

Migração do Endpoints Frameworks

Ao migrar a API para a versão 2 do Endpoints Frameworks, implante a API em um novo aplicativo do App Engine. Se você reutilizar o aplicativo anterior do App Engine, as solicitações que começarem com o caminho da versão 1, /_ah/spi, poderão ser roteadas para a versão 2 do back-end do Endpoints Frameworks, que espera que os caminhos comecem com /_ah/api.

Baixo desempenho em instâncias de escalonamento automático

O App Engine tem três tipos de escalonamento: básico, manual e automático. O Endpoints Frameworks usa linhas de execução em segundo plano, com que as instâncias de escalonamento automático não são compatíveis. O Endpoints Frameworks precisa se comunicar com serviços do Google para verificar cotas e informar a atividade da API, entre outras coisas. Para instâncias de escalonamento básico e manual, uma linha de execução em segundo plano realiza essa comunicação para evitar atrasar solicitações. No entanto, as instâncias de escalonamento automático não oferecem suporte a linhas de execução em segundo plano. Em vez disso, a comunicação com os serviços do Google acontece durante a solicitação. O Endpoints Frameworks ainda funciona, mas com desempenho potencialmente reduzido.

Diante desse problema, é possível configurar outro tipo de dimensionamento. Consulte as seções abaixo na documentação do App Engine:

Caminhos com barras à direita não são compatíveis

Quando você implanta um documento da OpenAPI usando gcloud endpoints services deploy, o Cloud Endpoints rejeita documentos da OpenAPI que incluem caminhos com barras à direita. Por exemplo:

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

No Endpoints Frameworks, é necessário remover a barra à direita do decorador do método Python ou da anotação do método Java.

Java

Nesta seção, descrevemos problemas conhecidos no Endpoints Frameworks para Java.

Java Endpoints Frameworks legado (v1)

O Endpoints Frameworks versão 1 para Java tem um bug que lança uma exceção quando um enum é anotado. Esse problema é causado por uma dependência em uma versão anterior do Jackson. Para solucionar esse problema, migre para a versão 2 do Endpoints Frameworks.

Python

Nesta seção, você verá os problemas conhecidos no Endpoints Frameworks para Python.

Mensagem do erro: ImportError: cannot import name locked_file

Ao executar pip install com um arquivo requirements.txt, é possível que uma mensagem de erro ImportError: cannot import name locked_file apareça. O problema ocorre quando pip instala uma versão do pacote oauth2client incompatível com google-endpoints-api-management. Para solucionar esse problema, verifique se as linhas google-endpoints e google-endpoints-api-management são exibidas antes no arquivo requirements.txt. Por exemplo:

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'

Adicione outros requisitos após essas linhas.

API retorna erros 404 durante o teste local

Sintoma: todos os endpoints retornam 404 quando você usa dev_appserver.py para testar a API localmente, mas quando você implanta a API no App Engine, os endpoints respondem conforme o esperado. Esse problema foi observado em aplicativos que usam a biblioteca Django-six (em inglês).

Esse problema é causado por um conflito de versões entre a biblioteca python-future, que está incluída na biblioteca do Endpoints Frameworks para Python e na biblioteca Django-six. No momento, não sabemos qual é a versão da biblioteca Django-six que está causando o conflito.