Como preparar arquivos de configuração para o ambiente de execução do Python 3

Antes de executar o aplicativo no ambiente de execução do Python 3 do ambiente padrão do App Engine, talvez seja necessário alterar alguns dos arquivos de configuração usados pelo App Engine:

  • app.yaml. Esse arquivo contém informações sobre o código do aplicativo, como o ambiente de execução e os gerenciadores do aplicativo.

  • appengine_config.py. O ambiente de execução do Python 2 usa esse arquivo para acessar bibliotecas de terceiros e fornecer valores para constantes e "funções hook". Esse arquivo não é usado no ambiente de execução do Python 3.

Atualizando app.yaml

O comportamento de alguns campos no arquivo de configuração app.yaml foi modificado. Remova todos os campos que não são mais compatíveis e atualize outros campos conforme descrito na tabela a seguir.

Campo Tipo de alteração Descrição
app_engine_apis Aplicável somente ao Python 3 Obrigatório para ser definido como true se você quiser acessar os serviços em pacote legados para Python 3.
api_version
application_readable
builtins
Não é mais compatível Não aplicável no ambiente de execução do Python 3.
threadsafe Não é mais compatível Todas os aplicativos são presumidos como threadsafe. Se o app não for seguro para linhas de execução, especifique um entrypoint configurando uma linha de execução por worker.

Por exemplo, ao usar a classe de instância F4:
entrypoint: gunicorn -b :$PORT -w 8 --threads 1 main:app

Veja as práticas recomendadas para pontos de entrada para o número recomendado de workers para cada classe de instância.
libraries Não é mais compatível Use o arquivo requirements.txt para declarar dependências e instalar bibliotecas de cliente.
handlers: login Compatível se app_engine_apis for true Se você não estiver usando os serviços incluídos legados para Python 3, use o gerenciamento de identidade e acesso (IAM, na sigla em inglês) para o gerenciamento de usuários.
handlers: script Modificado No ambiente de execução do Python 2, use o campo script para rotear as solicitações recebidas para o script do aplicativo.

No ambiente de execução do Python 3, é necessário usar um framework da Web com roteamento no aplicativo (como Flask ou Django) em vez de usar o campo script.

Para migrar o arquivo app.yaml para o ambiente de execução do Python 3, execute uma das seguintes ações, dependendo se o arquivo contém gerenciadores estáticos e gerenciadores de script:

  • Se o arquivo app.yaml contiver gerenciadores estáticos, execute uma das ações a seguir para garantir que as solicitações de conteúdo dinâmico sejam roteadas para o script do aplicativo:
    • Remova todos os campos de script. Em seguida, adicione um campo entrypoint para iniciar um servidor da Web que executa o aplicativo. As solicitações que não correspondem a nenhum dos gerenciadores estáticos serão direcionadas ao servidor da Web especificado no campo entrypoint. O servidor da Web e o framework da Web do aplicativo são responsáveis pelo roteamento da solicitação para o script correto.
    • Substitua o valor de todos os campos script por auto. O App Engine executará automaticamente o aplicativo em um servidor da Web (supondo que o aplicativo atenda a alguns requisitos), e todas as solicitações que correspondem a um gerenciador de script serão direcionadas ao servidor da Web. O servidor da Web e o framework da Web do aplicativo são responsáveis pelo roteamento da solicitação para o script correto.
    • Se seu arquivo app.yaml não contiver gerenciadores estáticos, remova todos os campos script. Todas as solicitações para o aplicativo serão direcionadas ao respectivo servidor da Web e o framework do aplicativo roteará a solicitação para o script correto. Se preferir, é possível adicionar um campo entrypoint para personalizar o comportamento de inicialização padrão.

O processamento de arquivos estático permanece inalterado.

Se você usar qualquer um dos campos obsoletos, o App Engine retornará um erro ao implantar o aplicativo.

Como remover appengine_config.py

O ambiente de execução do Python 2 no ambiente padrão do App Engine usa o arquivo appengine_config.py.

Esse arquivo é ignorado no ambiente de execução do Python 3. Em vez disso, o ambiente de execução do Python 3 usa o arquivo requirements.txt padrão para instalar dependências, incluindo dependências que usam código nativo. Para mais informações, consulte Como especificar dependências no ambiente de execução do Python 3.