Opções do servidor de desenvolvimento local

O servidor de desenvolvimento local (dev_appserver.py) faz parte dos componentes do App Engine da CLI gcloud. Este tópico fornece informações avançadas sobre a utilização do dev_appserver.py.

Recomendamos que use ferramentas Python padrão, como virtualenv para criar ambientes isolados e pytest para executar testes unitários e testes de integração, em vez de depender de dev_appserver, o servidor de desenvolvimento local fornecido com o SDK do Google Cloud.

Consulte o artigo Usar o servidor de desenvolvimento local para mais informações sobre os testes locais.

Configure a ferramenta de servidor de desenvolvimento local

Um comando dev_appserver.py de exemplo pode ter o seguinte aspeto:

python3 CLOUD_SDK_ROOT/bin/dev_appserver.py OPTION yaml_path FILES

Substitua o seguinte:

  • CLOUD_SDK_ROOT com o caminho para o diretório raiz onde instalou a CLI gcloud. O diretório predefinido é ./google-cloud-sdk/.
  • OPTION com uma flag suportada pelo servidor de desenvolvimento local.
  • FILES especifica um ou mais ficheiros app.yaml, um por serviço, para o argumento posicional yaml_path.

Para ver uma lista completa de opções, execute o seguinte:

python3 CLOUD_SDK_ROOT/bin/dev_appserver.py -h

Opções comuns

As opções mais comuns são as seguintes:

--admin_host=ADMIN_HOST
Nome do anfitrião ao qual a consola de administração do servidor de desenvolvimento local deve ser associada (predefinição: localhost).
--admin_port=ADMIN_PORT
Porta à qual a consola de administração do servidor de desenvolvimento local deve ser associada (predefinição: 8000).
--addn_host=ADDN_HOST
Este argumento permite-lhe adicionar à lista de autorizações valores de cabeçalho do anfitrião HTTP adicionais, para que o servidor possa ser tornado acessível através de um proxy, sem ter de desativar a verificação do anfitrião (consulte --enable_host_checking). Os anfitriões adicionais que começam por *. permitem todos os subdomínios. Por exemplo, *.example.org permite host.example.org, mas não sub.host.example.org nem example.org. Os anfitriões que começam por **. permitem subdomínios de qualquer profundidade. Por exemplo, **.example.com permite host.example.com e sub.host.example.com, mas não example.com. (predefinição: [])
--allow_skipped_files=...
Torne os ficheiros especificados nos controladores app.yaml skip_files ou static legíveis pela aplicação (predefinição: False).
-A APP_ID, --application=...
Defina a aplicação, substituindo o valor da aplicação do ficheiro app.yaml (predefinição: Nenhum).
--appidentity_email_address=...
Endereço de email associado a uma conta de serviço que tem uma chave transferível. Pode ser None para nenhuma identidade de aplicação local (predefinição: None).
--appidentity_private_key_path=...
Caminho para o ficheiro de chave privada associado à conta de serviço (formato .pem). Tem de ser definido se appidentity_email_address estiver definido (predefinição: nenhum).
--api_host=API_HOST
Nome do anfitrião ao qual o servidor da API deve ser associado (predefinição: localhost).
--api_port=API_PORT
Porta à qual o servidor para chamadas API deve ser associado (predefinição: 0).
--auth_domain=...
Nome do domínio de autorização a usar (predefinição: gmail.com).
--auto_id_policy=...
Descontinuado. Como o arquivo de dados local atribui IDs automáticos. As opções são sequential ou scattered (predefinição: scattered).
--automatic_restart=...
Reinicie as instâncias automaticamente quando os ficheiros relevantes para o respetivo módulo forem alterados (predefinição: True).
--blobstore_path=...
Caminho para o diretório usado para armazenar conteúdos de objetos binários grandes (predefinição para um subdiretório de --storage_path se não estiver definido) (predefinição: Nenhum).
--clear_datastore=yes|no
Limpa os dados da base de dados e os ficheiros do histórico antes de iniciar o servidor Web (predefinição: no).
--clear_search_indexes...
Limpe os índices de pesquisa (predefinição: False).
--custom_entrypoint=...

Especifique um ponto de entrada para módulos de tempo de execução personalizados. Isto é necessário quando esses módulos estão presentes. Inclua {port} na string (sem aspas) para transmitir o número da porta como um argumento (predefinição: ). Por exemplo:

--custom_entrypoint="gunicorn -b localhost:{port}
  mymodule:application"
--datastore_consistency_policy {consistent,random,time}

A política a aplicar quando decidir se uma gravação da base de dados deve aparecer em consultas globais (predefinição: tempo).

--datastore_emulator_cmd=...

O caminho para um script que invoca o emulador do Cloud Datastore. Se estiver vazio, o dev_appserver tenta encontrar o emulador do Datastore no Google Cloud SDK (predefinição: Nenhum).

--datastore_emulator_port=...

O número da porta em que o dev_appserver deve iniciar o emulador do Cloud Datastore (predefinição: 0).

--datastore_path=...

O caminho a usar para o ficheiro de dados do armazenamento de dados local. O servidor cria este ficheiro se não existir.

--default_gcs_bucket_name=...

Nome do contentor do Cloud Storage predefinido (predefinição: nenhum).

--dev_appserver_log_level {debug,info,warning,critical,error}

O nível de registo abaixo do qual as mensagens de registo geradas pelo servidor de desenvolvimento não são apresentadas na consola (este sinalizador é mais útil para diagnosticar problemas no dev_appserver.py do que no código da aplicação) (predefinição: info).

--enable_host_checking=yes|no

Determina se deve aplicar a HTTPverificação de anfitriões para módulos de aplicações, servidor da API e servidor de administração. A verificação de anfitriões protege contra ataques de revinculação de DNS. Desative-a apenas depois de compreender as implicações de segurança (predefinição: verdadeiro).

--enable_console=yes|no

Ativar consola interativa na vista de administrador (predefinição: False).

--enable_sendmail=yes|no

Usa a instalação do Sendmail no computador local para enviar mensagens de email.

--enable_task_running=yes|no

Permite que o servidor de programação execute tarefas push (predefinição: yes). Se especificar no, o servidor não executa tarefas push.

--env_var=...

Variável de ambiente definida pelo utilizador para o processo de tempo de execução local. Cada env_var está no formato de key=value e pode definir várias variáveis de ambiente. Além de env_variables no app.yaml, esta flag permite definir variáveis de ambiente adicionais para processos locais.

Por exemplo:--env_var KEY_1=val1 --env_var KEY_2=val2

--grpc_api_port...

Porta na qual o servidor da API gRPC escuta (predefinição:0).

--help

Imprime uma mensagem útil e, em seguida, fecha.

--host=...

O endereço do anfitrião a usar para o servidor. Pode ter de definir esta opção para poder aceder ao servidor de desenvolvimento a partir de outro computador na sua rede. Um endereço de 0.0.0.0 permite o acesso ao anfitrião local e o acesso ao IP ou ao nome de anfitrião (predefinição: localhost).

--log_level=...

O nível de registo mais baixo no qual as mensagens de registo são escritas na consola; as mensagens do nível de registo especificado ou superior são apresentadas. Os valores possíveis são debug, info, warning, error e critical.

--logs_path=...

Por predefinição, os registos do servidor de desenvolvimento local são armazenados apenas na memória. Especifique esta opção quando executar o servidor de desenvolvimento local para armazenar os registos num ficheiro, o que torna os registos disponíveis em todos os reinícios do servidor. Tem de especificar o caminho do diretório e o nome de um ficheiro de base de dados SQLite. É criado um ficheiro de base de dados SQLite com o nome especificado se o ficheiro ainda não existir.

Por exemplo: --logs_path=/home/logs/boglogs.db

--max_module_instances=...

O número máximo de instâncias de tempo de execução que podem ser iniciadas para um módulo específico. O valor pode ser um número inteiro, caso em que todos os módulos estão limitados ao número de instâncias ou a uma lista separada por vírgulas de module:max_instances (predefinição: Nenhum). Por exemplo: default:5,backend:3

--mysql_host=MYSQL_HOST

Nome do anfitrião de um servidor MySQL em execução usado para o armazenamento simulado do Cloud SQL (predefinição: localhost).

--mysql_port=MYSQL_PORT

Número da porta de um servidor MySQL em execução usado para armazenamento simulado do Cloud SQL (predefinição: 3306).

--mysql_user=MYSQL_USER

Nome de utilizador a usar ao estabelecer ligação ao servidor MySQL especificado em --mysql_host e --mysql_port ou --mysql_socket (predefinição: ).

--mysql_password=MYSQL_PASSWORD

Palavra-passe a usar ao estabelecer ligação ao servidor MySQL especificado em --mysql_host e --mysql_port ou --mysql_socket (predefinição: ).

--mysql_socket=MYSQL_SOCKET

Caminho para um ficheiro de socket Unix a usar ao ligar a um servidor MySQL em execução usado para armazenamento simulado do Cloud SQL (predefinição: nenhum).

--port=...

O número da porta a usar para o servidor. A predefinição é 8080. Se forem iniciados vários servidores, como para serviços, são-lhes atribuídas portas subsequentes, como 8081 e 8082.

--require_indexes=yes|no

Desativa a geração automática de entradas no ficheiro index.yaml. Em alternativa, quando a aplicação faz uma consulta que requer que o respetivo índice seja definido no ficheiro e a definição do índice não é encontrada, é gerada uma exceção, semelhante ao que aconteceria quando executada no App Engine (predefinição: no).

--runtime=...

Especifique os tempos de execução predefinidos que quer usar. Para ver a lista dos tempos de execução suportados, consulte o calendário de apoio técnico do tempo de execução.

--running_datastore_emulator_host=...

Substitui a variável de ambiente DATASTORE_EMULATOR_HOST, o que significa o hostname:port de um emulador do Cloud Datastore em execução ao qual dev_appserver pode estabelecer ligação (predefinição: Nenhum).

--search_indexes_path=...

Caminho para um ficheiro usado para armazenar índices de pesquisa (predefinição para um ficheiro no --storage_path se não estiver definido) (predefinição:Nenhum).

--skip_sdk_update_check=...

Ignora a verificação de atualizações do SDK (se for falso, usa .appcfg_nag para decidir) (predefinição: falso).

--show_mail_body=...

Regista o conteúdo dos emails enviados através da API Mail (predefinição: False).

--smtp_allow_tls...

Permitir a utilização de TLS quando o servidor SMTP anuncia compatibilidade com TLS (ignorada se --smtp_host não estiver definido) (predefinição: True).

--smtp_host=...

O nome do anfitrião do servidor SMTP a usar para enviar mensagens de email.

--smtp_port=...

O número da porta do servidor SMTP a usar para enviar mensagens de email.

--smtp_user=...

O nome de utilizador a usar com o servidor SMTP para enviar mensagens de email.

--smtp_password=...

A palavra-passe a usar com o servidor SMTP para enviar mensagens de email.

--storage_path=...

Caminho no qual todos os ficheiros locais, como o Datastore, o Blobstore, os ficheiros do Cloud Storage e os registos, são armazenados, a menos que sejam substituídos por --datastore_path, --blobstore_path ou --logs_path.

--support_datastore_emulator=yes|no

Use o emulador do Cloud Datastore (beta) para a emulação local do armazenamento de dados.

--ssl_certificate_path=...

Caminho para o certificado SSL. Também tem de fornecer --ssl_certificate_key_path se usar esta opção (predefinição: None).

--ssl_certificate_key_path=...

Caminho para a chave privada SSL correspondente. Também tem de fornecer --ssl_certificate_path se usar esta opção (predefinição: None).

--threadsafe_override=...

Substituir a configuração de segurança de threads da aplicação. O valor pode ser um booleano, caso em que a definição de segurança de threads de todos os módulos é substituída, ou uma lista separada por vírgulas de module:threadsafe_override (predefinição: Nenhum).

Por exemplo: default:False,backend:True

--use_mtime_file_watcher=...

Use a sondagem mtime para detetar alterações ao código fonte. É útil se estiver a modificar o código a partir de um computador remoto através de um sistema de ficheiros distribuído (predefinição: False).

--watcher_ignore_re=...

String de regex para especificar os ficheiros a serem ignorados pelo observador de ficheiros. (predefinição: Nenhum)

Opções de comando específicas do tempo de execução do Python:

--python_startup_script
O script a executar no arranque de novas instâncias do tempo de execução do Python (útil para ferramentas como depuradores) (predefinição: Nenhum).
--python_startup_args
Os argumentos disponibilizados ao script especificado em python_startup_script (predefinição: Nenhum).
--python27_executable_path=...
O caminho para o executável python27 para instâncias de tempo de execução python27 (predefinição: Nenhum).
--python_virtualenv_path
O caminho para o diretório que é usado para configurar um ambiente virtual do Python 3 para o ambiente de execução do devappserver local para aplicações Python 3. Se o caminho não existir, o diretório é criado, mas não é limpo no final da execução do devappserver, o que permite o armazenamento em cache entre invocações. Se não for definido, é usado um diretório temporário e limpo no final da execução.
--runtime_python_path=...
O caminho para o ficheiro binário do Python. Para executar uma app Python no dev_appserver, especifique esta flag.