Não é possível usar a versão mais recente do dev_appserver.py
para executar localmente seus aplicativos em ambientes de execução que atingiram o fim do suporte.
Para continuar usando uma versão arquivada do dev_appserver.py
, siga as instruções neste guia.
Use o servidor de desenvolvimento local para simular a execução do aplicativo do App Engine na produção, bem como usá-lo para acessar os serviços incluídos legados do App Engine. O ambiente simulado aplica algumas restrições de sandbox, como funções de sistema restrito e importações de módulo de linguagem do ambiente de execução, mas não outras, como intervalos de solicitação ou cotas.
O servidor de desenvolvimento local também simula os serviços fornecidos pelas bibliotecas no SDK do App Engine, incluindo Datastore, Memcache e filas de tarefas, por meio da execução local das respectivas tarefas. Quando o aplicativo está em execução no servidor de desenvolvimento, ainda é possível fazer chamadas de API remotas para a infraestrutura de produção usando os endpoints HTTP da API do Google.
Antes de começar
Para fazer o download de uma versão arquivada do devapp_server.py
, siga estas etapas:
No arquivo, faça o download da pasta compactada que contém o servidor do
dev_appserver.py
para ambientes de execução que atingiram o fim do suporte.Extraia o conteúdo do diretório para o sistema de arquivos local, como o diretório
/home
. É possível encontrardev_appserver.py
no diretóriogoogle_appengine/
.
Configurar o servidor de desenvolvimento local
Para executar a ferramenta do servidor de desenvolvimento local, configure o seguinte:
Verifique se você instalou um intérprete do Python 2 da versão 2.7.12 ou posterior.
Defina a variável de ambiente
DEVAPPSERVER_PYTHON
no shell como o caminho do interpretador do Python 2.Localize a ferramenta
dev_appserver.py
na pasta/google_appengine/
em que você extrai o arquivo transferido por download. Por exemplo:DEVAPPSERVER_ROOT/google_appengine/dev_appserver.py
Executar o servidor de desenvolvimento local
Depois de configurar o servidor de desenvolvimento local e criar o
arquivo de configuração app.yaml
para
seu app, use o comando dev_appserver.py
para executar seu app localmente.
Para iniciar o servidor de desenvolvimento local:
-
No diretório que contém o arquivo de configuração
app.yaml
, execute o comandodev_appserver.py
.Especifique o caminho do diretório para seu aplicativo, por exemplo:
python2 DEVAPPSERVER_ROOT/google_appengine/dev_appserver.py --runtime_python_path=/usr/bin/python2 [PATH_TO_YOUR_APP]
Também é possível definir o argumento como uma lista separada por vírgulas de pares
[RUNTIME_ID]=[PYTHON_INTERPRETER_PATH]
. Por exemplo:python2 DEVAPPSERVER_ROOT/google_appengine/dev_appserver.py --runtime_python_path="python27=/usr/bin/python2.7" [PATH_TO_YOUR_APP]
Para alterar a porta, inclua a opção
--port
:python2 DEVAPPSERVER_ROOT/google_appengine/dev_appserver.py --runtime_python_path=/usr/bin/python2 --port=9999 [PATH_TO_YOUR_APP]
Substitua DEVAPPSERVER_ROOT pelo caminho para a pasta em que você extrai a versão arquivada de
devapp_server.py
. - O servidor de desenvolvimento local já está sendo executado e detectando solicitações. Acesse
http://localhost:8080/ no seu navegador
da Web para ver o aplicativo em ação.
Caso tenha especificado uma porta personalizada com a opção
--port
, lembre-se de abrir essa porta no seu navegador.
Para parar o servidor local pela linha de comando, pressione:
- macOS ou Linux: Control+C
- Windows: Control+Break
Especificar IDs de aplicativo
Para acessar o ID do aplicativo no servidor local, por exemplo, para fazer o spoofing de um endereço de e-mail, use a função get_application_id()
.
Para receber o nome do host do aplicativo em execução, use a função get_default_version_hostname()
.
Detectar o ambiente de execução do aplicativo
Para determinar se o código está em execução na produção ou no servidor de
desenvolvimento local, verifique a variável
de ambiente GAE_ENV
:
if os.getenv('GAE_ENV', '').startswith('standard'):
# Production in the standard environment
else:
# Local development server
Usar o serviço de e-mail
O servidor de desenvolvimento local pode enviar e-mails para chamadas do serviço de e-mail do App Engine usando um servidor SMTP ou uma instalação local do Sendmail.
Como usar SMTP
Para ativar o suporte a e-mail com um servidor SMTP, invoque dev_appserver.py
da
seguinte maneira:
python2 DEVAPPSERVER_ROOT/google_appengine/dev_appserver.py --smtp_host=smtp.example.com --smtp_port=25 \
--smtp_user=ajohnson --smtp_password=k1tt3ns PATH_TO_YOUR_APP
Substitua:
- DEVAPPSERVER_ROOT pelo caminho para a pasta em que você
extrai a versão arquivada de
devapp_server.py
. - As opções
--smtp_host
,--smtp_port
,--smtp_user
e--smtp_password
com seus próprios valores de configuração. - PATH_TO_YOUR_APP pelo caminho para seu aplicativo.
Como usar o Sendmail
Para ativar o suporte a e-mail com o Sendmail, invoque dev_appserver.py
desta forma:
python2 DEVAPPSERVER_ROOT/google_appengine/dev_appserver.py --enable_sendmail=yes PATH_TO_YOUR_APP
Substitua:
- DEVAPPSERVER_ROOT pelo caminho para a pasta em que você
extrai a versão arquivada de
devapp_server.py
. - PATH_TO_YOUR_APP pelo caminho para seu aplicativo.
O servidor local usa o comando sendmail
para enviar mensagens de e-mail com
a configuração padrão da instalação.
Usar o serviço de busca de URL
Quando o aplicativo usa a API de busca de URL para fazer uma solicitação HTTP, o servidor de desenvolvimento local efetua a solicitação diretamente do seu computador. O comportamento de busca de URL no servidor local pode ser diferente do App Engine de produção se você usar um servidor proxy para acessar sites.
Usar o serviço Usuários
O App Engine fornece um Serviço usuários para simplificar a autenticação e autorização para seu aplicativo. O servidor de desenvolvimento local simula o comportamento das Contas do Google com as próprias páginas de login e logout.
Durante a execução no servidor
de desenvolvimento local, as funções retornam URLs para /_ah/login
e /_ah/logout
no servidor local.
Argumentos de linha de comando
Para ver as opções de comando do servidor de desenvolvimento local, consulte Opções de servidor de desenvolvimento local.