Sobre este codelab
1. Antes de começar
Os apps do App Engine são fáceis de criar, manter e escalonar à medida que seu tráfego e o armazenamento de dados precisam mudar. Com o App Engine, não há servidores para fazer manutenção, basta fazer upload do seu app e pronto.
Os apps do App Engine são escalonados automaticamente com base no tráfego de entrada. Balanceamento de carga, microsserviços, autorização, bancos de dados SQL e NoSQL, armazenamento em cache de memória, divisão de tráfego, geração de registros, pesquisa, controle de versões, lançamentos e reversões e verificação de segurança são compatíveis nativamente e são altamente personalizáveis.
O ambiente padrão do App Engine e o ambiente flexível do App Engine são compatíveis com várias linguagens de programação, como Java, Python, PHP, NodeJS e Go. Os dois ambientes oferecem aos desenvolvedores maior flexibilidade no comportamento do app. Cada ambiente tem pontos fortes. Para mais informações, consulte Como escolher um ambiente do App Engine.
Você aprenderá a implantar um aplicativo Spring Boot no ambiente padrão do App Engine. O ambiente padrão reduz o escalonamento vertical para zero instâncias quando ninguém estiver usando e o escalonamento automático será automático.
Pré-requisitos
- Familiaridade com uma linguagem de programação Java e ferramentas
- Conhecimento sobre os editores de texto padrão do Linux, como Vim, Emacs e nano
O que você aprenderá
- Como criar um app Java do Spring Boot no App Engine
O que é necessário
- um projeto do Google Cloud;
- Um navegador, como o Google Chrome
2. Configuração e requisitos
Configuração de ambiente personalizada
- Faça login no Console do Cloud e crie um novo projeto ou reutilize um existente. Se você ainda não tem uma conta do Gmail ou do G Suite, crie uma.
Lembre-se do código do projeto, um nome exclusivo em todos os projetos do Google Cloud. O nome acima já foi escolhido e não servirá para você. Faremos referência a ele mais adiante neste codelab como PROJECT_ID
.
- Em seguida, você precisará ativar o faturamento no Console do Cloud para usar os recursos do Google Cloud.
A execução por este codelab não deve custar mais do que alguns dólares, mas pode ser mais se você decidir usar mais recursos ou se deixá-los em execução.
Novos usuários do Google Cloud estão qualificados para um teste sem custo financeiro de US$ 300.
Cloud Shell
Você usará o Cloud Shell, um ambiente de linha de comando executado no Google Cloud.
Ativar o Cloud Shell
- No Console do Cloud, clique em Ativar o Cloud Shell
.
Se você nunca tiver iniciado o Cloud Shell, verá uma tela intermediária (abaixo da dobra) com a descrição do que ele é. Se esse for o caso, clique em Continuar e você não o verá novamente. Esta é uma tela única:
Leva apenas alguns instantes para provisionar e se conectar ao Cloud Shell.
Essa máquina virtual contém todas as ferramentas de desenvolvimento necessárias. Ela oferece um diretório principal persistente de 5 GB, além de ser executada no Google Cloud. Isso aprimora o desempenho e a autenticação da rede. Praticamente todo o seu trabalho neste codelab pode ser feito em um navegador ou no seu Chromebook.
Depois de se conectar ao Cloud Shell, você já estará autenticado e o projeto já estará configurado com seu ID do projeto.
- Execute o seguinte comando no Cloud Shell para confirmar que você está autenticado:
gcloud auth list
Resposta ao comando
Credentialed Accounts ACTIVE ACCOUNT * <my_account>@<my_domain.com> To set the active account, run: $ gcloud config set account `ACCOUNT`
gcloud config list project
Resposta ao comando
[core] project = <PROJECT_ID>
Se o projeto não estiver configurado, faça a configuração usando este comando:
gcloud config set project <PROJECT_ID>
Resposta ao comando
Updated property [core/project].
3. Criar um novo app da Web do Spring Boot
Depois que o Cloud Shell for iniciado, você poderá usar a linha de comando para gerar um novo aplicativo Spring Boot com o Spring Initializr.
$ curl https://start.spring.io/starter.tgz \ -d bootVersion=2.1.8.RELEASE \ -d dependencies=web \ -d baseDir=gae-standard-example | tar -xzvf - $ cd gae-standard-example
4. Atualizar pom.xml do Maven
Há duas maneiras de implantar um app de servidor Java: usando o Maven App Engine Plugin ou o Gradle App Engine Plugin, ou implantando o diretório do pacote war
. Você usará o plug-in Maven App Engine para implantar o aplicativo.
Adicionar plug-in Maven App Engine
Atualize o pom.xml
para incluir um plug-in do Google Cloud que simplifica o processo de implantação. Você pode usar o Vim, o nano ou o Emacs para editar o arquivo.
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" ...>
...
<build>
<plugins>
...
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>appengine-maven-plugin</artifactId>
<version>2.1.0</version>
<configuration>
<version>1</version>
<projectId>GCLOUD_CONFIG</projectId>
</configuration>
</plugin>
...
</plugins>
</build>
</project>
5. Adicionar descritor do App Engine
- Para implantar o aplicativo no ambiente padrão do App Engine, crie um novo arquivo descritor do
src/main/appengine/app.yaml
.
$ mkdir -p src/main/appengine/ $ touch src/main/appengine/app.yaml
- Edite o arquivo
src/main/appengine/app.yaml
e adicione o seguinte conteúdo:
src/main/appengine/app.yaml
runtime: java11
instance_class: F4
6. Adicionar um controlador
Adicione um novo controlador que retorne "hello world!"
em DemoApplication.java
.
src/main/java/com/example/demo/DemoApplication.java (em inglês)
package com.example.demo;
...
// Add imports
import org.springframework.web.bind.annotation.*;
@SpringBootApplication
@RestController
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@GetMapping("/")
public String hello() {
return "hello world!";
}
}
7. Executar o app localmente
- É possível iniciar o app Spring Boot com o plug-in Spring Boot:
$ ./mvnw -DskipTests spring-boot:run
- Depois que o aplicativo for iniciado, clique em Visualização na Web
na barra de ferramentas do Cloud Shell e selecione Visualizar na porta 8080.
Uma guia no navegador será aberta e se conectará ao servidor que você iniciou.
8. Implantar o aplicativo no App Engine
- Primeiro, inicialize o projeto para poder executar apps do App Engine. Além disso, inicialize o projeto para ser executado na região central dos EUA.
$ gcloud app create --region us-central You are creating an app for project [...]. WARNING: Creating an App Engine application for a project is irreversible and the region cannot be changed. More information about regions is at https://cloud.google.com/appengine/docs/locations
- Em seguida, implante o aplicativo no ambiente padrão do App Engine executando
mvn appengine:deploy
.
$ ./mvnw -DskipTests package appengine:deploy ... first time deploy may take a couple of minutes
- Depois de implantar o aplicativo, acesse-o abrindo http://<project-id>.appspot.com no navegador da Web ou use o seguinte comando no Cloud Shell:
$ gcloud app browse ... [It may print out the URL for your app]