A Google Cloud CLI inclui um servidor de desenvolvimento local
(dev_appserver.py
), que você pode usar para simular
a execução do aplicativo no App Engine de produção ou
acessar serviços incluídos do App Engine.
O ambiente simulado impõe algumas restrições de sandbox, como funções de sistema restritas e importações de módulo em PHP 7+, mas não outras, como cotas ou expirações de solicitação.
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á sendo executado no servidor de desenvolvimento, ainda é possível fazer chamadas de API remotas para a infraestrutura de produção usando os endpoints HTTP das APIs do Google.
Como executar o servidor de desenvolvimento local
Depois de criar
o arquivo de configuração
app.yaml
para seu aplicativo, inicie o servidor de desenvolvimento local com o
comando dev_appserver.py
para executá-lo localmente.
Para iniciar o servidor de desenvolvimento local:
Como executar o servidor de desenvolvimento local (dev_appserver.py
)
O servidor de desenvolvimento local está localizado em
[PATH_TO_CLOUD_SDK]/google-cloud-sdk/bin/dev_appserver.py
. Para executar a ferramenta,
especifique o caminho completo ao executar dev_appserver.py
ou
adicione dev_appserver.py
à variável de ambiente PATH
.
Se você quiser adicionar as ferramentas da Google Cloud CLI ao PATH
e ativar o preenchimento
do comando, execute o seguinte comando:
[PATH_TO_CLOUD_SDK]/google-cloud-sdk/install.sh
No diretório que contém o arquivo de configuração
app.yaml
, execute o comandodev_appserver.py
. Se o Python 2 não for o interpretador padrão no sistema, executepython2 dev_appserver.py
para garantir que o interpretador do Python 2 seja usado.Windows/macOS
Especifique o caminho do diretório para seu aplicativo, por exemplo:
dev_appserver.py [PATH_TO_YOUR_APP]
Se preferir, informe o arquivo de configuração de um serviço específico, por exemplo:
dev_appserver.py app.yaml
Para alterar a porta, inclua a opção
--port
:dev_appserver.py --port=9999 [PATH_TO_YOUR_APP]
Linux/cust. php-cgi
Se você estiver no Linux ou quiser usar uma versão personalizada de
php-cgi
, especifique o caminho do diretório para ophp-cgi
:Crie sua própria build da Extensão PHP do App Engine na máquina local.
Inicie o servidor de desenvolvimento local com as opções
--php_executable_path
e--php_gae_extension_path
:dev_appserver.py --php_executable_path=[PATH_TO_PHP_7_EXECUTABLE] --php_gae_extension_path=[PATH_TO_APPENGINE_EXTENSION] app.yaml
em que
--php_executable_path
é o local do interpretador PHP que você está usando e em que--php_gae_extension_path
é o local do arquivogae_runtime_module.so
que você criou na etapa anterior.
O dev_appserver.py não funciona?
Para saber mais sobre as opções de comando
dev_appserver.py
, consulte Opções do servidor de desenvolvimento local.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 navegador.
Para parar o servidor local pela linha de comando, pressione:
- macOS ou Linux: Control+C
- Windows: Control+Break
Como especificar IDs do 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. Para receber o nome do host do aplicativo em execução, use a função.
Como 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 o valor da variável de ambiente
SERVER_SOFTWARE
:
if (strpos(getenv('SERVER_SOFTWARE'), 'Development') === 0){
echo 'Local development server';
} else {
echo 'Production';
}
Como armazenar dados
O App Engine para PHP é compatível com a leitura e gravação
no Cloud Storage por meio da API de streams do
PHP. É possível ler e gravar no Cloud Storage especificando um
URI do Cloud Storage (gs://
) ao usar qualquer função PHP compatível com
a implementação de streams PHP, como
fopen,
fwrite ou
file_get_contents.
O servidor de desenvolvimento local emula essa funcionalidade lendo e gravando em arquivos locais temporários que são preservados entre as solicitações.
Como navegar no 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 no 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.
Como 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
createLoginURL
e createLogoutURL
retornam URLs para /_ah/login
e /_ah/logout
no servidor local.
Como usar o 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:
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:
dev_appserver.py --enable_sendmail=yes [PATH_TO_YOUR_APP]
O servidor local usará o comando sendmail
para enviar mensagens de e-mail com
a configuração padrão da instalação.
Como usar a 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.
Como depurar localmente com o XDebug
Se você tiver um depurador compatível com o
depurador XDebug (em inglês) e tiver o módulo xdebug
instalado, use o XDebug com o servidor de desenvolvimento local.
Para ativar o XDebug no servidor de desenvolvimento no Linux ou no macOS:
Exporte a variável de ambiente
XDEBUG_CONFIG
com uma idekey para o IDE se conectarexport XDEBUG_CONFIG="idekey=netbeans-xdebug remote_host=localhost"
Invocar o servidor de desenvolvimento com
--php_remote_debugging=yes