Como testar e implantar seu aplicativo

ID da região

O REGION_ID é um código abreviado que o Google atribui com base na região que você selecionou ao criar o aplicativo. O código não corresponde a um país ou estado, ainda que alguns IDs de região sejam semelhantes aos códigos de país e estado geralmente usados. Para apps criados após fevereiro de 2020, o REGION_ID.r está incluído nos URLs do App Engine. Para apps existentes criados antes dessa data, o ID da região é opcional no URL.

Saiba mais sobre IDs de região.

Saiba como executar o aplicativo localmente, implantá-lo e testá-lo no App Engine.

Como executar localmente

Para testar a funcionalidade do aplicativo antes de implantá-lo, execute-o no ambiente local com as ferramentas de desenvolvimento que você costuma usar.

Antes de implantar o aplicativo

Antes de implantar o aplicativo:

Implantar o aplicativo

Implante o aplicativo no App Engine usando o comando gcloud app deploy. Durante a implantação, o serviço Cloud Build cria uma imagem de contêiner do seu aplicativo para ser executada no ambiente padrão do App Engine. Cada build é executado na mesma região do projeto do Google Cloud. Saiba mais sobre Como gerenciar imagens do build.

Para implantar os aplicativos de maneira programática, use a API Admin.

Implantar um serviço

Implante o aplicativo no App Engine implantando as versões dos serviços dele e os respectivos arquivos de configuração.

Para implantar uma versão do serviço do seu aplicativo, execute o comando a seguir no diretório em que o arquivo app.yaml do serviço está localizado:

gcloud app deploy

Se você não especificar um arquivo com o comando, somente o arquivo app.yaml será implantado no diretório atual. Por padrão, o comando deploy gera um ID exclusivo para a versão a ser implantada, implanta-a no projeto do Google Cloud para o qual você configurou o uso da Google Cloud CLI e encaminha todo o tráfego para a nova versão.

É possível alterar o comportamento padrão do comando. Basta apontar arquivos específicos ou incluir outros parâmetros:

  • Para implantar os outros arquivos de configuração do serviço, é necessário direcionar e implantar cada um deles separadamente. Por exemplo:
    gcloud app deploy cron.yaml
    gcloud app deploy dispatch.yaml
    gcloud app deploy index.yaml
    
  • Para especificar um ID de versão personalizado, use a sinalização --version.
  • Para impedir que o tráfego seja roteado automaticamente para a nova versão, use a sinalização --no-promote.
  • Para implantar em um projeto específico do Google Cloud, use a sinalização --project.

Por exemplo, para implantar o serviço definido pelo arquivo app.yaml em um projeto específico do Google Cloud, atribua a ele um ID de versão personalizado e impeça que o tráfego seja roteado para a nova versão:

gcloud app deploy --project PROJECT_ID --version VERSION_ID --no-promote

Para mais informações sobre esse comando, consulte a referência do gcloud app deploy.

Como implantar vários serviços

Use o mesmo comando para implantar ou atualizar os diversos serviços que compõem seu aplicativo.

Antes de começar:

  • Primeiro é preciso implantar uma versão do seu aplicativo no serviço default para depois criar e implantar serviços posteriores.
  • O ID de cada serviço precisa ser especificado nos arquivos de configuração app.yaml correspondentes. Para fazer isso, inclua a definição do elemento service em cada arquivo de configuração. Por padrão, a exclusão dessa definição de elemento do arquivo de configuração faz com que a versão seja implantada no serviço default.

Para implantar vários serviços, implante o arquivo app.yaml de cada serviço separadamente. É possível especificar vários arquivos com um único comando gcloud app deploy:

gcloud app deploy service1/app.yaml service2/app.yaml

Como visualizar registros de build

Os streams do Cloud Build criam e implantam registros visíveis na seção de histórico do Build do Console do Google Cloud. Para visualizar builds na região do aplicativo, use o menu suspenso Região, na parte superior da página, e escolha a região que você quer filtrar.

Como gerenciar imagens do build

Cada vez que você implanta uma nova versão, uma imagem de contêiner é criada usando o serviço do Cloud Build. Essa imagem de contêiner é criada na região do aplicativo e executada no ambiente padrão do App Engine.

As imagens de contêiner criadas são armazenadas na pasta app-engine-tmp/app do Container Registry. É possível fazer o download dessas imagens para guardá-las ou executá-las em outro lugar. Depois da conclusão da implantação, o App Engine não precisa mais das imagens de contêiner. Como elas não são excluídas automaticamente, é possível excluir com segurança todas as imagens desnecessárias para evitar atingir sua cota de armazenamento. No entanto, se você precisar das imagens no futuro ou quiser manter uma cópia delas, precisará exportar uma cópia antes da exclusão. Para mais informações sobre como gerenciar imagens no Container Registry, consulte a Documentação do Container Registry.

Como ignorar arquivos

Use um arquivo .gcloudignore para especificar arquivos e diretórios que não serão enviados ao App Engine quando você implantar os serviços. Isso é útil para ignorar artefatos de compilação e outros arquivos que não precisam ser carregados com a implantação.

Como visualizar o aplicativo

Após a implantação do aplicativo no App Engine, execute o comando abaixo para iniciar o navegador e visualizá-lo em https://PROJECT_ID.REGION_ID.r.appspot.com:

gcloud app browse

Como testar no App Engine antes de transferir tráfego

Antes de configurar uma nova versão para receber tráfego, teste-a no App Engine. Por exemplo, para testar uma nova versão do serviço default, siga estas etapas:

  1. Implante a nova versão, mas impeça que o tráfego seja roteado automaticamente para ela:

    gcloud app deploy --no-promote

  2. Acesse a nova versão no URL a seguir:

    https://VERSION_ID-dot-default-dot-PROJECT_ID.REGION_ID.r.appspot.com

    Agora você pode testar sua nova versão no ambiente de execução do App Engine. Além disso, é possível depurar o aplicativo visualizando os registros. Para obter mais informações, consulte Como gravar registros de aplicativos.

    O App Engine encaminha as solicitações enviadas a https://PROJECT_ID.REGION_ID.r.appspot.com para a versão configurada anteriormente para receber tráfego.

  3. Quando você quiser enviar tráfego para a nova versão, use o console do Google Cloud para migrá-lo:

    Gerenciar versões

    Selecione a versão que você acabou de implantar e clique em Migrar tráfego.

Use o mesmo processo para testar novas versões de outros serviços substituindo default no URL pelo nome do serviço:

https://VERSION-dot-SERVICE-dot-PROJECT_ID.REGION_ID.r.appspot.com

Para mais informações sobre como segmentar serviços e versões específicos, consulte Como as solicitações são encaminhadas.

Como usar variáveis de ambiente de build

Também é possível definir variáveis de ambiente de build para ambientes de execução compatíveis com buildpacks.

As variáveis de ambiente de build são pares de chave-valor que você pode especificar para configurar o buildpack usado para implantar o app. Por exemplo, é possível especificar opções de compilador.

Antes de começar:

  • As chaves precisam começar com uma letra ASCII maiúscula e podem incluir letras ASCII maiúsculas, dígitos e sublinhados.
  • Evite criar variáveis com um prefixo de chave GOOGLE_*.
  • As seguintes chaves são reservadas para uso do Google:
    • GOOGLE_RUNTIME
    • GOOGLE_RUNTIME_VERSION
    • GOOGLE_ENTRYPOINT
    • GOOGLE_DEVMODE
  • Você pode usar qualquer chave aceita pelos buildpacks.

Para usar variáveis de ambiente com buildpacks, especifique o campo build_env_variables no seu arquivo app.yaml.

Saiba mais sobre buildpacks.

Como usar o Cloud Trace

O Cloud Trace é útil para entender como as solicitações se propagam pelo aplicativo. É possível analisar informações detalhadas sobre a latência de uma única solicitação ou ver a latência agregada do aplicativo como um todo.

Para ver detalhes de trace no Cloud Trace, siga Encontrar e explorar traces. No explorer do Trace, você pode usar os filtros para filtrar por serviço e versão específicos do App Engine.