Como testar e implantar o 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

Use qualquer uma das técnicas a seguir para implantar seu app:

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

Como implantar o código-fonte do seu app

Se você usa o Maven ou o Gradle para gerenciar as compilações locais do seu app e se todas as dependências do seu app estiverem disponíveis para download, insira o comando gcloud app deploy no diretório que contém os arquivos pom.xml ou build.gradle do seu app:

gcloud app deploy

O comando instrui o Cloud Build a usar os pacotes de compilação do App Engine para criar o app e implantá-lo no App Engine.

Se você usa o Maven:

  • O pacote de compilação usa o seguinte comando: mvn clean package --batch-mode -DskipTests

  • Se o diretório raiz do app tiver um arquivo mvnw, o comando de build substituirá ./mvnw em vez de mvn. O Cloud Build procura no diretório target o arquivo .jar com uma entrada de manifesto de classe principal e cria um entrypoint com o valor java -jar <jarfile>.

Se você usa o Gradle:

  • O pacote de compilação usa o seguinte comando: gradle clean assemble -x test --build-cache

  • Se o diretório raiz do app tiver um arquivo gradlew, o comando de build substituirá ./gradlew em vez de gradle. O Cloud Build procura no diretório build/libs o arquivo .jar com uma entrada de manifesto de classe principal e cria um entrypoint com o valor java -jar <jarfile>.

  • Verifique se não há pom.xml na raiz do seu projeto. Os projetos do Maven têm precedência sobre os projetos do Gradle.

Como visualizar registros de build

Os streams do Cloud Build criam e implantam registros, e é possível visualizá-los na seção de histórico do Cloud Build do console do Googel Cloud. Para ver as versões 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.

Observe o seguinte sobre essa técnica de implantação:

  • Se o app tiver dependências que só estão disponíveis localmente, o Cloud Build não conseguirá criar o app, e a implantação falhará. Nesse caso, recomendamos usar o plug-in Maven ou Gradle do App Engine.

  • A criação do app usa a cota do Cloud Build e o armazenamento do código-fonte do app usa a cota do Cloud Storage. O Cloud Build e o Cloud Storage oferecem cotas gratuitas. Assim, você não será cobrado pela implantação de apps do App Engine até ultrapassar as cotas gratuitas. Para mais informações, consulte Preços.

  • Atualmente, não é possível especificar argumentos adicionais para o comando de compilação do Gradle. Para mais informações, consulte o Google Issue Tracker.

Como usar o plug-in Maven ou Gradle do App Engine

O App Engine fornece plug-ins Maven e Gradle que podem ser usados para criar e implantar o app. Por exemplo, depois de configurar o plug-in Maven do App Engine, insira o seguinte comando no diretório que contém o arquivo pom.xml do seu projeto:

mvn package appengine:deploy -Dapp.deploy.projectId=PROJECT_ID

Substitua PROJECT_ID pelo ID do projeto do Cloud. Se o arquivo pom.xmlespecificar o ID do projeto, não será necessário incluir a propriedade -Dapp.deploy.projectId no comando executado.

Para mais informações, consulte Como usar o Apache Maven e o plug-in do App Engine ou Como usar o Gradle e o plug-in do App Engine.

Como implantar um JAR executável

Use qualquer framework de compilação para criar um JAR executável localmente e siga um destes procedimentos, dependendo se você criou um arquivo app.yaml para o app:

  • Se você criou um arquivo app.yaml:

    1. Copie o arquivo no mesmo diretório do arquivo JAR executável criado.

    2. No diretório que contém o app.yaml e seu JAR, digite o seguinte comando:

      gcloud app deploy
  • Se você não criou um arquivo app.yaml, digite o seguinte comando:

    gcloud app deploy your-executable.jar

    gcloud app deploy criará um arquivo app.yaml que contém as configurações mínimas, usando todos os valores padrão.

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 gerenciar imagens de versão

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. Para mais informações sobre como gerenciar imagens no Container Registry, consulte a documentação do Container Registry.

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:

    mvn appengine:deploy -Dapp.deploy.projectId=PROJECT_ID -Dapp.deploy.promote=False

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

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

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

    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. Use o console do Google Cloud quando quiser enviar o tráfego para a nova versão:

    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 apontar serviços e versões específicos, consulte Como as solicitações são roteadas.

Como usar variáveis de ambiente de build

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

Variáveis de ambiente de build são pares de chave-valor implantados com um app que permite transmitir informações de configuração para buildpacks. Por exemplo, digamos que você quer personalizar as opções do compilador. É possível adicionar ou remover essas variáveis de ambiente de build configurando o campo build_env_variables no arquivo app.yaml.

Usar o Cloud Debugger

É possível usar o Debugger para inspecionar o estado do app implantado em qualquer local de código sem interromper ou desacelerar o aplicativo em execução.

Para usar o Debugger com um app em Java 11, a sinalização a seguir precisa ser incluída no campo entrypoint do arquivo app.yaml:

-agentpath:/opt/cdbg/cdbg_java_agent.so=--log_dir=/var/log

Se você já especificou entrypoint em app.yaml, adicione a sinalização agentpath ao comando java no campo entrypoint.

Se você não tiver especificado o campo entrypoint, ou se o arquivo app.yaml foi gerado ao implantar o aplicativo, o App Engine adicionará a sinalização ao comando usado para iniciar o app.

Como usar o Cloud Profiler

O Cloud Profiler é um criador de perfil estatístico de baixa sobrecarga que coleta continuamente informações sobre o uso da CPU e a alocação de memória dos seus aplicativos de produção. Ele atribui essas informações ao código-fonte do seu app, o que ajuda você a identificar as partes do aplicativo que consomem mais recursos e entender as características de desempenho do código.

Para usar o Cloud Profiler, configure os arquivos de configuração do app conforme descrito em Como iniciar o programa e reimplante o app.