A CLI do Google Cloud inclui um servidor de desenvolvimento local (dev_appserver.py). Você pode usar o servidor de desenvolvimento local para simular a execução do aplicativo do App Engine em produção e usá-lo para acessar serviços em pacote 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.
Configurar o servidor de desenvolvimento local
Para executar a ferramenta do servidor de desenvolvimento local, configure o seguinte:
- Verifique se você instalou um interpretador do Python 3 que é compatível com a versão do Python exigida pela CLI gcloud.
Verifique se você instalou o componente da CLI do Google Cloud que inclui a extensão do App Engine para Python 3 (
app-engine-python):gcloud components listSe o componente
app-engine-pythonnão estiver instalado, execute o seguinte comando:gcloud components install app-engine-pythonLocalize o caminho de instalação do Google Cloud SDK executando o seguinte comando:
gcloud infoO comando retorna o diretório raiz em que você instalou o SDK do Google Cloud, por exemplo:
Installation Root: [/Users/myname/google-cloud-sdk]Localize a ferramenta
dev_appserver.pyna pasta/bin/em que você instalou a Google Cloud CLI, por exemplo:CLOUD_SDK_ROOT/bin/dev_appserver.pyAnote o caminho do
dev_appserver.pypara uso posterior.
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.dev_appserver.py
Especifique o caminho do diretório para seu aplicativo, por exemplo:
python3 CLOUD_SDK_ROOT/bin/dev_appserver.py PATH_TO_YOUR_APPSe preferir, informe o arquivo de configuração de um serviço específico, por exemplo:
python3 CLOUD_SDK_ROOT/bin/dev_appserver.py app.yamlPara alterar a porta, inclua a opção
--port:python3 CLOUD_SDK_ROOT/bin/dev_appserver.py --port=9999 PATH_TO_YOUR_APPgoapp serve
O comando
goapp serveestá incluído no SDK original do App Engine para Go e envolve a ferramenta subjacentedev_appserver.pydo Python. Para iniciar o servidor de desenvolvimento local, execute:goapp serve - 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 app no servidor local, por exemplo, para fazer o spoofing de um endereço de e-mail, use a função appengine.AppID.
Para receber o nome do host do aplicativo em execução, use a função appengine.DefaultVersionHostname.
Detectar o ambiente de execução do aplicativo
Para determinar se o código está sendo executado em produção ou no servidor de desenvolvimento local, chame o método IsDevAppServer(). Quando isso for true, seu código está sendo executado no ambiente de desenvolvimento local. Caso contrário, está sendo executado em produção.
Consulte o GitHub para ver um exemplo.
Usar o serviço local do Datastore
O servidor de desenvolvimento local simula o armazenamento de dados do App Engine usando um arquivo local que persiste entre invocações do servidor local.
Para mais informações sobre índices e index.yaml, consulte a página Índices do Datastore.
Navegar pelo Datastore local
Se seu aplicativo tiver gravado dados no seu Datastore local usando o servidor de desenvolvimento local, você pode navegar nele pelo console de desenvolvimento local.
Para navegar pelo Datastore local:
Acesse o Leitor do Datastore no console de desenvolvimento local. O URL é
http://localhost:8000/datastore.Veja o conteúdo do Datastore local.
Especificar a política de alocação de códigos
Para o App Engine de produção, é possível configurar o Datastore para gerar IDs de entidade automaticamente.
Embora as políticas de atribuição automática de IDs para o servidor de produção sejam completamente diferentes das usadas pelo servidor de desenvolvimento, é possível configurar a política de alocação de IDs automática para o servidor local.
Para especificar a política de atribuição automática de IDs, use a opção --auto_id_policy:
python3 CLOUD_SDK_ROOT/bin/dev_appserver.py --auto_id_policy=sequential
em que --auto_id_policy é uma das seguintes opções:
scattered: (padrão) os IDs são atribuídos de uma sequência sem repetições de números inteiros distribuídos de maneira quase uniforme.sequential: os IDs são atribuídos da sequência de números inteiros consecutivos.
Limpar o armazenamento de dados local
Para limpar o armazenamento de dados local de um aplicativo, invoque o servidor de desenvolvimento local da seguinte forma:
python3 CLOUD_SDK_ROOT/bin/dev_appserver.py --clear_datastore=yes app.yaml
Mudar o local do Datastore local
Para alterar o local usado para o arquivo de armazenamento de dados, use a opção --datastore_path:
python3 CLOUD_SDK_ROOT/bin/dev_appserver.py --datastore_path=/tmp/myapp_datastore app.yaml
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:
python3 [CLOUD_SDK_ROOT]/bin/dev_appserver.py --smtp_host=smtp.example.com --smtp_port=25 \
--smtp_user=ajohnson --smtp_password=k1tt3ns [PATH_TO_YOUR_APP]
em que você define as opções --smtp_host, --smtp_port, --smtp_user e
--smtp_password com seus próprios valores.
Como usar o Sendmail
Para ativar o suporte a e-mail com o Sendmail, invoque dev_appserver.py desta forma:
python3 [CLOUD_SDK_ROOT]/bin/dev_appserver.py --enable_sendmail=yes [PATH_TO_YOUR_APP]
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 LoginURL e LogoutURL
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.