Antes de poder executar a sua app no tempo de execução do Python 3 do ambiente padrão do App Engine, pode ter de alterar alguns dos ficheiros de configuração que o App Engine usa:
app.yaml
. Este ficheiro contém informações sobre o código da sua app, como o tempo de execução e os controladores da app.appengine_config.py
. O tempo de execução do Python 2 usa este ficheiro para aceder a bibliotecas de terceiros e fornecer valores para constantes e "funções de gancho". O tempo de execução do Python 3 não usa este ficheiro.
A atualizar app.yaml
O comportamento de alguns campos no seu
app.yaml
ficheiro de configuração
foi modificado. Remova todos os campos que já não são suportados e atualize
outros campos, conforme descrito na tabela seguinte.
Campo | Alterar tipo | Descrição |
---|---|---|
app_engine_apis | Aplicável apenas ao Python 3 | Tem de estar definido como true se quiser aceder aos
serviços agrupados antigos para Python 3. |
api_version application_readable builtins |
Já não é suportado | Não aplicável no tempo de execução do Python 3. |
threadsafe | Já não é suportado | Presume-se que todas as aplicações são seguras para threads. Se a sua aplicação não for
segura para threads, especifique um entrypoint
configurando 1 thread por trabalhador.Por exemplo, quando usar a classe de instância F4: entrypoint: gunicorn -b :$PORT -w 8 --threads 1 main:app Consulte as práticas recomendadas de ponto de entrada para o número recomendado de trabalhadores para cada classe de instância. |
bibliotecas | Já não é suportado |
Use o ficheiro requirements.txt para
declarar dependências
e instalar bibliotecas de cliente.
|
controladores: login | Suportado se app_engine_apis for true |
Se não estiver a usar os serviços agrupados antigos para o Python 3, use a gestão de identidade e de acesso (IAM) para a gestão de utilizadores. |
handlers: script | Modificado | No tempo de execução do Python 2, usa o campo
script
para encaminhar os pedidos recebidos para o script da sua app.
No tempo de execução do Python 3, tem de usar uma framework Web com
encaminhamento na app (como o Flask ou o Django) em vez de usar o campo
Para migrar o seu ficheiro
O processamento de ficheiros estáticos permanece inalterado. |
Se usar algum dos campos descontinuados, o App Engine devolve um erro quando implementar a sua app.
Pode usar os seguintes exemplos para comparar as diferenças entre os ficheiros 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: python313
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
A remover appengine_config.py
O motor de execução do Python 2 no ambiente padrão do App Engine usa o ficheiro
appengine_config.py
.
Este ficheiro é ignorado no tempo de execução do Python 3. Em alternativa, o tempo de execução do Python 3 usa o ficheiro requirements.txt
padrão para instalar dependências, incluindo dependências que usam código nativo.