Opções de servidor de desenvolvimento local

O servidor de desenvolvimento local (dev_appserver.py) faz parte dos componentes do App Engine da gcloud CLI. Neste tópico, fornecemos informações avançadas sobre o uso de dev_appserver.py.

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

Saiba mais sobre testes locais em Como usar o servidor de desenvolvimento local.

Configurar a ferramenta de servidor de desenvolvimento local

Um exemplo de comando dev_appserver.py pode ter a seguinte aparência:

python3 CLOUD_SDK_ROOT/bin/dev_appserver.py OPTION yaml_path FILES

Substitua:

  • CLOUD_SDK_ROOT pelo caminho para o diretório raiz em que você instalou a Google Cloud CLI. O diretório padrão é ./google-cloud-sdk/.
  • OPTION por uma sinalização compatível com o servidor de desenvolvimento local.
  • FILES especifica um ou mais arquivos 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:

--admin_host=ADMIN_HOST
Nome do host a que o console de administração do servidor de desenvolvimento local precisa se vincular (padrão: localhost).
--admin_port=ADMIN_PORT
Porta a que o console de administração do servidor de desenvolvimento local precisa se vincular (padrão: 8000).
--addn_host=ADDN_HOST
Esse argumento permite que você adicione outros valores de cabeçalho HTTP Host à lista de permissões, para que o servidor possa ser acessível por trás de um proxy, sem ter que desativar a verificação do host (consulte--enable_host_checking). Outros hosts que começam com *. permitem todos os subdomínios. Por exemplo, *.example.org permite host.example.org, mas não sub.host.example.org ou example.org. Os hosts que começam com **. permitem subdomínios de qualquer profundidade. Por exemplo, **.example.com permite host.example.com e sub.host.example.com, mas não example.com. (padrão [])
--allow_skipped_files=...
Fazer que os arquivos especificados no app.yaml ou skip_files identificadores static possam ser lidos pelo aplicativo (padrão: False).
-A APP_ID, --application=...
Definir o aplicativo substituindo o valor dele no arquivo app.yaml (padrão: None).
--appidentity_email_address=...
O endereço de e-mail associado a uma conta de serviço que tem uma chave para download. Pode ser None no caso de nenhuma identidade de aplicativo local (padrão: None).
--appidentity_private_key_path=...
Caminho para o arquivo da chave privada associado à conta de serviço (formato .pem). Precisará ser definido se appidentity_email_address for definido (padrão: None).
--api_host=API_HOST
Nome do host a que o servidor de API será vinculado (padrão: localhost).
--api_port=API_PORT
Porta a que o servidor de chamadas de API precisa se vincular (padrão: 0).
--auth_domain=...
Nome do domínio de autorização a ser usado (padrão gmail.com).
--auto_id_policy=...
Obsoleto. Como o repositório de dados local atribui IDs automáticos. As opções são sequential ou scattered (padrão: scattered).
--automatic_restart=...
Reiniciar instâncias automaticamente quando arquivos relevantes para o módulo são alterados (padrão: True).
--blobstore_path=...
Caminho para o diretório usado para armazenar o conteúdo de blob. O padrão é um subdiretório de --storage_path se não definido (padrão: None).
--clear_datastore=yes|no
Limpar os arquivos de histórico e repositório de dados antes de iniciar o servidor da Web (padrão: no).
--clear_search_indexes...
Limpar os índices de pesquisa (padrão: False).
--custom_entrypoint=...

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

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

A política a ser aplicada ao decidir se uma gravação do repositório de dados aparecerá em consultas globais (padrão: time).

--datastore_emulator_cmd=...

O caminho para um script que invoca o emulador do Cloud Datastore. Se deixado em branco, dev_appserver tentará encontrar um emulador do repositório de dados no SDK do Google Cloud (padrão: None).

--datastore_emulator_port=...

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

--datastore_path=...

O caminho a ser usado para o arquivo de dados do repositório de dados local. O servidor criará esse arquivo se ele não existir.

--default_gcs_bucket_name=...

Nome padrão do bucket do Cloud Storage (padrão: None).

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

O nível de registro abaixo do qual as mensagens de registro geradas pelo servidor de desenvolvimento não são exibidas no console. Essa sinalização é mais útil para diagnosticar problemas em dev_appserver.py, em vez de no código do aplicativo) (padrão: info).

--enable_host_checking=yes|no

Determina se a verificação de host HTTP será aplicada a módulos de aplicativos, servidor da API e servidor do administrador. A verificação do host protege contra ataques de revinculação de DNS e é desativada somente depois de as implicações de segurança serem entendidas (padrão: True).

--enable_console=yes|no

Ativar o console interativo na visualização de administrador (padrão: False).

--enable_sendmail=yes|no

Usa a instalação Sendmail do computador local para enviar mensagens de e-mail.

--enable_task_running=yes|no

Permite que o servidor de desenvolvimento execute tarefas push (padrão: yes). Se você especificar o no, o servidor não executará tarefas push.

--env_var=...

Variável de ambiente definida pelo usuário para o processo do ambiente de execução local. Cada env_var está no formato key=value, e é possível definir várias variáveis de ambiente. Além de env_variables no app.yaml, essa sinalização permite definir variáveis de ambiente extras para processos locais.

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

--grpc_api_port...

Porta em que o servidor de API gRPC é capaz de detectar (padrão:0).

--help

Imprime uma mensagem útil e é encerrado.

--host=...

O endereço de host a ser usado com o servidor. É preciso configurá-lo para acessar o servidor de desenvolvimento a partir de outro computador da rede. Um endereço de 0.0.0.0 permite acesso ao localhost e ao IP ou nome do host (padrão: localhost).

--log_level=...

O nível de geração de registros mais baixo em que as mensagens de registro serão escritas no console. As mensagens do nível de geração de registros especificado ou superior serão exibidas. Os valores possíveis são debug, info, warning, error e critical.

--logs_path=...

Por padrão, os registros do servidor de desenvolvimento local são armazenados somente na memória. Especifique esta opção ao executar o servidor de desenvolvimento local para armazenar os registros em um arquivo, o que disponibiliza os registros nas reinicializações do servidor. É preciso especificar o caminho do diretório e o nome de um arquivo de banco de dados SQLite. Se ainda não existir, um arquivo SQLite será criado com o nome especificado.

Exemplo: --logs_path=/home/logs/boglogs.db

--max_module_instances=...

Número máximo de instâncias de ambiente de execução que podem ser iniciadas para um determinado módulo. O valor pode ser um número inteiro, o que limita todos os módulos ao número de instâncias ou uma lista separada por vírgulas de module:max_instances (padrão: None). Por exemplo: default:5,backend:3

--mysql_host=MYSQL_HOST

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

--mysql_port=MYSQL_PORT

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

--mysql_user=MYSQL_USER

Nome de usuário a ser usado ao se conectar ao servidor MySQL especificado em --mysql_host e --mysql_port ou --mysql_socket (padrão: ).

--mysql_password=MYSQL_PASSWORD

Senha a ser usada ao se conectar ao servidor MySQL especificado em --mysql_host e --mysql_port ou --mysql_socket (padrão: ).

--mysql_socket=MYSQL_SOCKET

Caminho para um arquivo de soquete Unix que será usado ao se conectar a um servidor MySQL em execução usado para armazenamento simulado do Cloud SQL (padrão: None).

--port=...

O número da porta que será usado com o servidor. O padrão é 8080. Se vários servidores forem iniciados, por exemplo, para serviços, serão atribuídas portas subsequentes, como 8081 e 8082.

--require_indexes=yes|no

Desativa a geração automática de entradas no arquivo index.yaml. Em vez disso, quando o aplicativo realizar uma consulta que exija a definição do índice no arquivo e esta não for encontrada, uma exceção será emitida como aconteceria durante a execução no App Engine (padrão: no).

--runtime=...

Especificar os tempos de execução padrão que você gostaria de usar. Para ver a lista de ambientes de execução compatíveis, consulte a Programação do suporte ao ambiente de execução.

--running_datastore_emulator_host=...

Modifica a variável de ambiente DATASTORE_EMULATOR_HOST, que representa o hostname:port de um emulador do Cloud Datastore em execução a que dev_appserver pode se conectar (padrão: nenhum).

--search_indexes_path=...

Caminho para um arquivo usado para armazenar índices de pesquisa. (padrão será um arquivo em --storage_path se não estiver definido) (padrão: nenhum).

--skip_sdk_update_check=...

Pular a verificação de atualizações do SDK. Se for falso, use .appcfg_nag para decidir (padrão: False).

--show_mail_body=...

Registra o conteúdo de e-mails enviados usando a API Mail (padrão: False).

--smtp_allow_tls...

Permitir que o TLS seja usado quando o servidor SMTP anunciar o suporte a TLS (ignorado se --smtp_host não estiver definido) (padrão: True).

--smtp_host=...

O nome do host do servidor SMTP que será usado para enviar mensagens de e-mail.

--smtp_port=...

O número da porta do servidor SMTP a ser usado para enviar mensagens de e-mail.

--smtp_user=...

O nome de usuário a ser usado com o servidor SMTP para enviar mensagens de e-mail.

--smtp_password=...

A senha que deve ser usada com o servidor SMTP para enviar mensagens de e-mail.

--storage_path=...

O caminho em que todos os arquivos locais, como o Datastore, o Blobstore, os arquivos e registros do Cloud Storage, serão armazenados, a menos que sejam substituídos por --datastore_path, --blobstore_path ou --logs_path.

--support_datastore_emulator=yes|no

Usar o emulador do Cloud Datastore (beta) para emulação de repositório de dados local.

--ssl_certificate_path=...

Caminho para o certificado SSL. Também precisará fornecer --ssl_certificate_key_path se essa opção estiver sendo usada (padrão: None).

--ssl_certificate_key_path=...

Caminho para a chave privada SSL correspondente. Também precisará fornecer --ssl_certificate_path se essa opção estiver sendo usada (padrão: None).

--threadsafe_override=...

Substituir a configuração de threadsafe do aplicativo. O valor pode ser um booleano, o que substituirá a configuração de threadsafe de todos os módulos, ou uma lista separada por vírgulas de module:threadsafe_override (padrão: None).

Exemplo: default:False,backend:True

--use_mtime_file_watcher=...

Usar a pesquisa de mtime para detectar alterações no código-fonte. Isso é útil para modificar o código de uma máquina remota usando um sistema de arquivos distribuído (padrão: False).

--watcher_ignore_re=...

String do regex para especificar arquivos a serem ignorados pelo filewatcher. (padrão: None)

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

--python_startup_script
Script a ser executado na inicialização de novas instâncias de ambiente de execução do Python. Útil para ferramentas como depuradores (padrão: None).
--python_startup_args
Os argumentos disponibilizados para o script especificado em python_startup_script (padrão: None).
--python27_executable_path=...
O caminho para o executável python27 das instâncias de ambiente de execução do python27 (padrão: None).
--python_virtualenv_path
O caminho para o diretório usado para configurar um ambiente virtual do Python 3 para o ambiente de execução local do devappserver para aplicativos do Python 3. Se o caminho não existir, o diretório será criado, mas não será limpo no final da execução do devappserver, permitindo o armazenamento em cache entre invocações. Se não for definido, um diretório temporário será usado e limpo no final da execução.
--runtime_python_path=...
O caminho para o binário do Python. Para executar um app Python no dev_appserver, especifique esse flag.