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 Para migrar o arquivo
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.
Use os exemplos a seguir para comparar as diferenças entre os
arquivos app.yaml
:
Python 2
runtime: python27 api_version: 1 threadsafe: true handlers: - url: / script: home.app - url: /index\.html script: home.app - url: /stylesheets static_dir: stylesheets - url: /(.*\.(gif|png|jpg))$ static_files: static/\1 upload: static/.*\.(gif|png|jpg)$ - url: /admin/.* script: admin.app login: admin - url: /.* script: not_found.app
Python 3
runtime: python312
app_engine_apis: true
handlers:
- url: /stylesheets
static_dir: stylesheets
- url: /(.*\.(gif|png|jpg))$
static_files: static/\1
upload: static/.*\.(gif|png|jpg)$
- url: /admin/.*
script: auto
login: admin
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.