Como testar e implantar seu aplicativo

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

Como executar localmente

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

Por exemplo, o comando go run.

Implantar o aplicativo

Implante o aplicativo no App Engine com o comando gcloud app deploy, que montará corretamente as dependências do aplicativo exatamente como a ferramenta go faz. Ele cria automaticamente uma imagem de contêiner usando o serviço Cloud Build e a implanta no ambiente flexível do App Engine. O contêiner inclui quaisquer modificações locais realizadas na imagem do ambiente de execução.

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

Antes de começar

Antes de implantar seu aplicativo:

Como garantir uma implantação bem-sucedida

Ao ativar as verificações de integridade atualizadas, as implantações são revertidas se o aplicativo não tiver o status "íntegro".

Quando você implanta seu primeiro aplicativo no ambiente flexível, pode ocorrer um atraso conforme a máquina virtual (VM) e outras infraestruturas são configuradas. Após a configuração inicial, as verificações de integridade garantem que a instância esteja íntegra e pronta para receber tráfego. Se o status "Pronto" não for atribuído ao aplicativo até o período indicado no campo initial_delay_sec, na seção liveness_check de seu arquivo app.yaml, então sua implantação terá falhado e será revertida.

É provável que o aplicativo demore um pouco mais para ficar pronto. Por exemplo, você pode inicializar o aplicativo fazendo o download de arquivos grandes ou carregando caches com antecedência. Com o uso de verificações de integridade atualizadas, é possível aumentar o tempo modificando a configuração app_start_timeout_sec na seção readiness_check do arquivo app.yaml.

Como 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 seguinte comando no diretório em que o arquivo app.yaml do serviço está localizado:

gcloud app deploy

Se você não especificar nenhum arquivo com o comando, somente o arquivo app.yaml será implantado no diretório atual. Por padrão, o comando deploy gera um código exclusivo para a versão implantada. Em seguida, ele implanta a versão no projeto do GCP que você configurou para uso da ferramenta gcloud 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 segmentar e implantar cada um deles separadamente. Exemplo:

    gcloud app deploy cron.yaml
    gcloud app deploy dispatch.yaml
    gcloud app deploy index.yaml
    
  • Para especificar um código de versão personalizado, use a sinalização --version.

  • Para impedir que o tráfego seja encaminhado automaticamente para a nova versão, use a sinalização --no-promote.

  • Para implantar em um projeto específico do GCP, use a sinalização --project.

Por exemplo, para implantar o serviço definido por app.yaml em um projeto específico do GCP, atribua a ele um código de versão personalizada e evite que o tráfego seja encaminhado para a nova versão:

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

Para mais informações sobre esse comando, veja a referência de 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.

Para implantar vários serviços, é necessário implantar o arquivo app.yaml de cada serviço separadamente. Por exemplo:

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

Especifique vários arquivos com um único comando de implantação:

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

Requisitos para implantar vários serviços

  • Inicialmente, você precisa implantar uma versão do seu aplicativo no serviço default antes de criar e implantar serviços subsequentes.

  • O ID de cada serviço precisa ser especificado nos arquivos de configuração app.yaml correspondentes. Para 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.

Como ignorar arquivos

É possível usar um arquivo .gcloudignore para especificar os arquivos e diretórios que não serão enviados ao GCP na implantação dos serviços. Isso é útil para ignorar artefatos de versão e outros arquivos que não precisam ser enviados com a implantação.

Saiba mais sobre a sintaxe do arquivo .gcloudignore na referência da gcloud.

Como criar manualmente um contêiner para implantação

Para criar as imagens de contêiner fora do Google Cloud Platform, é preciso enviá-las primeiro para um repositório de imagens de contêiner. Depois, faça a implantação no App Engine com o comando gcloud app deploy.

Por exemplo, ao criar localmente imagens de contêiner com o Docker, envie-as para o Google Container Registry e especifique o URL correspondente na sinalização --image-url do comando:

gcloud app deploy --image-url gcr.io/YOUR_PROJECT_ID/YOUR_CONTAINER_IMAGE
Para mais informações sobre como criar sua própria imagem de contêiner, consulte a seção Como estender o ambiente de execução.

Como usar canais de implantação contínua automatizada

Use o Cloud Build para automatizar implantações em pipelines de implantação contínua. Para mais informações, consulte na documentação do Cloud Build Como implantar artefatos e Como automatizar versões com acionadores da versã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 http://YOUR_PROJECT_ID.appspot.com:

gcloud app browse

Como fazer testes no App Engine

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:

  1. Implante sua nova versão e inclua a sinalização --no-promote:

    gcloud app deploy --no-promote
  2. Acesse a nova versão no URL a seguir:

    http://VERSION_ID.default.YOUR_PROJECT_ID.appspot.com
    

    Agora você pode testar sua nova versão no ambiente de execução do App Engine. É possível depurar seu aplicativo visualizando os registros no Visualizador de registros do Stackdriver no Console do Google Cloud Platform. Para mais informações, consulte Como gravar registros de aplicativos.

    As solicitações enviadas para http://YOUR_PROJECT_ID.appspot.com ainda serão encaminhadas à versão configurada anteriormente para receber tráfego.

  3. Quando quiser enviar tráfego para a nova versão, use o Console do GCP:

    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:

http://VERSION_ID.SERVICE_ID.YOUR_PROJECT_ID.appspot.com
Para mais informações sobre como apontar serviços e versões específicos, consulte Como as solicitações são encaminhadas.

Solução de problemas

Esta é uma mensagem de erro comum que você pode encontrar ao implantar apps:

PERMISSION_DENIED: Operation not allowed
The "appengine.applications.create" permission is required.
Se o projeto do GCP não incluir o aplicativo obrigatório do App Engine, o comando gcloud app deploy poderá falhar ao tentar executar o comando gcloud app create. Somente contas com o papel proprietário têm as permissões necessárias para criar aplicativos do App Engine.
Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Ambiente flexível do App Engine para Go