Como usar o servidor de desenvolvimento local

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:

  1. Verifique se você instalou um interpretador do Python 3 que é compatível com a versão do Python exigida pela CLI gcloud.
  2. 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 list
    

    Se o componente app-engine-python não estiver instalado, execute o seguinte comando:

    gcloud components install app-engine-python
    
  3. Localize o caminho de instalação do Google Cloud SDK executando o seguinte comando:

    gcloud info
    

    O comando retorna o diretório raiz em que você instalou o SDK do Google Cloud, por exemplo:

    Installation Root: [/Users/myname/google-cloud-sdk]

  4. Localize a ferramenta dev_appserver.py na pasta /bin/ em que você instalou a Google Cloud CLI, por exemplo:

    CLOUD_SDK_ROOT/bin/dev_appserver.py
    
  5. Anote o caminho do dev_appserver.py para 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:

  1. No diretório que contém o arquivo de configuração app.yaml, execute o comando 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_APP]
    

    Se preferir, informe o arquivo de configuração de um serviço específico, por exemplo:

       python3 CLOUD_SDK_ROOT/bin/dev_appserver.py app.yaml
    

    Para alterar a porta, inclua a opção --port:

       python3 CLOUD_SDK_ROOT/bin/dev_appserver.py --port=9999 [PATH_TO_YOUR_APP]
    

  2. 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:

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 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.