1. Prima di iniziare
Le app App Engine sono facili da creare, gestire e scalare in base alle variazioni del traffico e delle esigenze di spazio di archiviazione. Con App Engine, non ci sono server da mantenere. Ti basterà caricare l'app e sarà pronta all'uso.
Le app App Engine scalano automaticamente in base al traffico in entrata. Il bilanciamento del carico, i microservizi, l'autorizzazione, i database SQL e NoSQL, la memorizzazione nella cache, la suddivisione del traffico, il logging, la ricerca, il controllo delle versioni, i rollout e i rollback e la scansione di sicurezza sono tutti supportati in modo nativo e sono altamente personalizzabili.
L'ambiente standard di App Engine e l'ambiente flessibile di App Engine supportano una serie di linguaggi di programmazione, tra cui Java, Python, PHP, NodeJS e Go. I due ambienti offrono agli sviluppatori la massima flessibilità nel comportamento della loro app. Ogni ambiente ha determinati punti di forza. Per saperne di più, vedi Scegliere un ambiente App Engine.
Imparerai a eseguire il deployment di un'app Spring Boot nell'ambiente standard di App Engine. L'ambiente standard viene ridotto a zero istanze quando nessuno lo utilizza e viene aumentato automaticamente.
Prerequisiti
- Familiarità con il linguaggio di programmazione Java e gli strumenti
- Conoscenza degli editor di testo standard di Linux, ad esempio Vim, Emacs e nano
Attività previste
- Come creare un'app Java Spring Boot su App Engine
Che cosa ti serve
- Un progetto Google Cloud
- Un browser, ad esempio Google Chrome
2. Configurazione e requisiti
Configurazione dell'ambiente autonomo
- Accedi alla console Google Cloud e crea un nuovo progetto o riutilizzane uno esistente. Se non hai ancora un account Gmail o Google Workspace, devi crearne uno.



- Il nome del progetto è il nome visualizzato per i partecipanti a questo progetto. È una stringa di caratteri non utilizzata dalle API di Google. Puoi sempre aggiornarlo.
- L'ID progetto è univoco in tutti i progetti Google Cloud ed è immutabile (non può essere modificato dopo l'impostazione). La console Cloud genera automaticamente una stringa univoca, di solito non ti interessa di cosa si tratta. Nella maggior parte dei codelab, dovrai fare riferimento all'ID progetto (in genere identificato come
PROJECT_ID). Se l'ID generato non ti piace, puoi generarne un altro casuale. In alternativa, puoi provare a crearne uno e vedere se è disponibile. Non può essere modificato dopo questo passaggio e rimane per tutta la durata del progetto. - Per tua informazione, esiste un terzo valore, un numero di progetto, utilizzato da alcune API. Scopri di più su tutti e tre questi valori nella documentazione.
- Successivamente, devi abilitare la fatturazione in Cloud Console per utilizzare le risorse/API Cloud. Completare questo codelab non costa molto, se non nulla. Per arrestare le risorse ed evitare addebiti oltre a quelli previsti in questo tutorial, puoi eliminare le risorse che hai creato o il progetto. I nuovi utenti di Google Cloud possono beneficiare del programma prova senza costi di 300$.
Cloud Shell
Utilizzerai Cloud Shell, un ambiente a riga di comando in esecuzione in Google Cloud.
Attiva Cloud Shell
- Nella console Cloud, fai clic su Attiva Cloud Shell
.

Se è la prima volta che avvii Cloud Shell, viene visualizzata una schermata intermedia che ne descrive le funzionalità. Se è stata visualizzata una schermata intermedia, fai clic su Continua.

Bastano pochi istanti per eseguire il provisioning e connettersi a Cloud Shell.

Questa macchina virtuale è caricata con tutti gli strumenti di sviluppo necessari. Offre una home directory permanente da 5 GB e viene eseguita in Google Cloud, migliorando notevolmente le prestazioni e l'autenticazione della rete. Gran parte del lavoro per questo codelab, se non tutto, può essere svolto con un browser.
Una volta eseguita la connessione a Cloud Shell, dovresti vedere che il tuo account è autenticato e il progetto è impostato sul tuo ID progetto.
- Esegui questo comando in Cloud Shell per verificare che l'account sia autenticato:
gcloud auth list
Output comando
Credentialed Accounts
ACTIVE ACCOUNT
* <my_account>@<my_domain.com>
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- Esegui questo comando in Cloud Shell per verificare che il comando gcloud conosca il tuo progetto:
gcloud config list project
Output comando
[core] project = <PROJECT_ID>
In caso contrario, puoi impostarlo con questo comando:
gcloud config set project <PROJECT_ID>
Output comando
Updated property [core/project].
3. Crea una nuova app web Spring Boot
Dopo l'avvio di Cloud Shell, puoi utilizzare la riga di comando per generare una nuova app Spring Boot con Spring Initializr.
$ curl https://start.spring.io/starter.tgz \ -d bootVersion=3.0.5 \ -d dependencies=web \ -d type=maven-project \ -d baseDir=gae-standard-example | tar -xzvf - $ cd gae-standard-example
4. Aggiorna Maven pom.xml
Esistono due modi per eseguire il deployment di un'app server Java: utilizzando il plug-in Maven per App Engine o il plug-in Gradle per App Engine oppure eseguendo il deployment della directory del pacchetto war. Utilizzerai il plug-in Maven App Engine per eseguire il deployment dell'app.
Aggiungere il plug-in Maven App Engine
Aggiorna pom.xml in modo da includere un plug-in Google Cloud che semplifichi la procedura di deployment. Puoi utilizzare Vim, nano o Emacs per modificare il file.
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.4.4</version>
<configuration>
<version>1</version>
<projectId>GCLOUD_CONFIG</projectId>
</configuration>
</plugin>
...
</plugins>
</build>
</project>
5. Aggiungi il descrittore di App Engine
- Per eseguire il deployment dell'app nell'ambiente standard di App Engine, devi creare un nuovo file descrittore
src/main/appengine/app.yaml.
$ mkdir -p src/main/appengine/ $ touch src/main/appengine/app.yaml
- Modifica il file
src/main/appengine/app.yamle aggiungi i seguenti contenuti:
src/main/appengine/app.yaml
runtime: java17
instance_class: F1
6. Aggiungere un controller
Aggiungi un nuovo controller che restituisce "hello world!" in DemoApplication.java.
src/main/java/com/example/demo/DemoApplication.java
package com.example.demo;
...
// Add imports
import org.springframework.web.bind.annotation.*;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
// Add the controller.
@RestController
class HelloWorldController {
@GetMapping("/")
public String hello() {
return "hello world!";
}
}
7. Esegui l'app localmente
- Assicurati che JAVA_HOME sia impostato sulla versione JDK corretta:
$ export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64/
- Puoi avviare l'app Spring Boot con il plug-in Spring Boot:
$ ./mvnw -DskipTests spring-boot:run
- Dopo l'avvio dell'app, fai clic su Anteprima web
nella barra degli strumenti di Cloud Shell e seleziona Anteprima sulla porta 8080.

Si apre una scheda nel browser e si connette al server che hai avviato.

8. Eseguire il deployment dell'applicazione su App Engine
- Per prima cosa, inizializza il progetto per poter eseguire le app App Engine. Inoltre, inizializza il progetto per l'esecuzione nella regione centrale degli Stati Uniti.
$ 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
- Quindi, esegui il deployment dell'app nell'ambiente standard di App Engine eseguendo
mvn appengine:deploy.
$ ./mvnw -DskipTests package appengine:deploy ... first time deploy may take a couple of minutes
- Dopo il deployment dell'app, puoi visitarla aprendo http://<project-id>.appspot.com nel browser web o utilizzando il seguente comando in Cloud Shell:
$ gcloud app browse ... [It may print out the URL for your app]
9. Esegui la pulizia
Non puoi eliminare un'applicazione App Engine, ma puoi disattivarla.
Vai a App Engine e Settings nella console Google Cloud e seleziona Disable Application:

In alternativa, puoi eliminare l'intero progetto:
$ gcloud projects delete YOUR-PROJECT-ID
10. Complimenti
Hai imparato a scrivere la tua prima app web di App Engine.