Créer et lancer une application Java Spring Boot à partir de Cloud Shell

1. Avant de commencer

Cloud Shell est un outil de ligne de commande basé sur un navigateur qui vous permet d'accéder aux ressources Google Cloud. Cloud Shell vous permet de gérer facilement vos projets et vos ressources de la console Cloud, sans avoir à installer le SDK Cloud ni aucun autre outil sur votre système.

Vous utiliserez Cloud Shell pour créer et lancer une application Spring Boot sans quitter votre navigateur. Pour ce faire, vous utiliserez l'exemple de code de Créer une application avec Spring Boot.

Prérequis

  • Connaissances du langage et des outils de programmation Java
  • Connaissance des éditeurs de texte Linux standards tels que Vim, Emacs et nano

Objectifs de l'atelier

  • Utilisez Cloud Shell.
  • Créez une application Spring Boot simple dans Cloud Shell.
  • Modifiez l'application à l'aide de l'éditeur de code dans Cloud Shell.
  • Lancez l'application depuis Cloud Shell.

Prérequis

2. Préparation

Configuration de l'environnement au rythme de chacun

  1. Si vous ne possédez pas encore de compte Google, vous devez en créer un. Connectez-vous à la console Cloud, puis créez un projet.

3c50189ec031c0cf.png

Screenshot from 2016-02-10 12:45:26.png

Mémorisez l'ID du projet. Il s'agit d'un nom unique permettant de différencier chaque projet Google Cloud (le nom dans l'image est déjà pris ; vous devez en trouver un autre). Il sera désigné par le nom PROJECT_ID tout au long de cet atelier de programmation.

  1. Vous devez ensuite activer la facturation dans la console Cloud pour pouvoir utiliser les ressources Google Cloud. Suivre cet atelier de programmation ne devrait pas vous coûter plus d'un euro. Cependant, cela peut s'avérer plus coûteux si vous décidez d'utiliser davantage de ressources ou si vous n'interrompez pas les ressources.

Les nouveaux utilisateurs de Google Cloud peuvent s'inscrire à un essai sans frais pour bénéficier d'un crédit de 300$valable pour un essai sans frais.

Cloud Shell

Cette machine virtuelle basée sur Debian contient tous les outils de développement dont vous aurez besoin. Elle intègre un répertoire d'accueil persistant de 5 Go et s'exécute sur Google Cloud, ce qui améliore nettement les performances du réseau et l'authentification. Cela signifie que tout ce dont vous avez besoin pour cet atelier de programmation est un navigateur (oui, tout fonctionne sur un Chromebook).

  1. Pour activer Cloud Shell à partir de Cloud Console, cliquez simplement sur Activer Cloud Shell b125d9eb26a46cc5.png (l'opération de provisionnement et la connexion à l'environnement ne devraient prendre que quelques minutes).

1067942a9a93f70.png

Capture d'écran du 2017-06-14 à 10.13.43 PM.png

Une fois connecté à Cloud Shell, vous êtes normalement déjà authentifié et le projet PROJECT_ID est sélectionné :

gcloud auth list

Résultat de la commande

Credentialed accounts:
 - <myaccount>@<mydomain>.com (active)
gcloud config list project

Résultat de la commande

[core]
project = <PROJECT_ID>

Si, pour une raison quelconque, le projet n'est pas défini, exécutez simplement la commande suivante :

gcloud config set project <PROJECT_ID>

Vous recherchez votre PROJECT_ID ? Vérifiez l'ID que vous avez utilisé pendant les étapes de configuration ou recherchez-le dans le tableau de bord Cloud Console :

cc3895eeac80db2c.png

Par défaut, Cloud Shell définit certaines variables d'environnement qui pourront s'avérer utiles pour exécuter certaines commandes dans le futur.

echo $GOOGLE_CLOUD_PROJECT

Résultat de la commande

<PROJECT_ID>
  1. Pour finir, définissez la configuration du projet et de la zone par défaut :
gcloud config set compute/zone us-central1-f

Vous pouvez choisir parmi différentes zones. Pour en savoir plus, consultez la page Régions et zones.

3. Initialiser une application Spring Boot

Une fois l'outil de ligne de commande Spring Boot installé, vous pouvez initialiser et amorcer une nouvelle application Web "Hello, World".

$ curl https://start.spring.io/starter.tgz \
  -d dependencies=web \
  -d type=maven-project \
  -d baseDir=helloworld | tar -xzvf -

Cette commande crée un répertoire avec un projet Maven, ainsi que pom.xml, un wrapper Maven et un point d'entrée d'application.

4. Créer un service RESTful avec l'éditeur de code

  1. Ouvrez l'éditeur de code en cliquant sur Ouvrir l'éditeur 2109d75686c889a.png dans le menu Cloud Shell.
  2. Une fois l'éditeur ouvert, recherchez le fichier helloworld/src/main/java/com/example/demo/DemoApplication.java.

f26aa4faf9b35058.png

  1. Une fois le code ouvert, créez un contrôleur RESTful pour répondre à Hello. Dans le fichier DemoApplication.java, ajoutez une définition de classe Helloworld en plus de celle qui existe déjà.

src/main/java/com/example/demo/DemoApplication.java

package com.example;

...

// Add the import
import org.springframework.web.bind.annotation.*;

@SpringBootApplication
public class DemoApplication {
...
}

// Add the controller
@RestController
class Helloworld {
        @GetMapping("/")
        public String greet() {
                return "Hello!";
        }
}
  1. Enregistrez le fichier.

5. Exécuter l'application en local

  1. Ouvrez un terminal dans l'éditeur de code en sélectionnant Terminal, puis New Terminal dans le menu de l'éditeur.
  2. Assurez-vous que JAVA_HOME est défini sur la bonne version du JDK :
$ export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64/
  1. Vous pouvez démarrer l'application Spring Boot normalement avec le plug-in Spring Boot.
$ cd $HOME/helloworld
$ ./mvnw -DskipTests spring-boot:run

a4c65d9e3f7494bf.png

  1. Une fois l'application démarrée, cliquez sur Aperçu sur le Web1a94d5bd10bfc072.png dans la barre d'outils Cloud Shell, puis sur Aperçu sur le port 8080.

6252b94905f3f7bd.png

Un onglet s'ouvre dans votre navigateur et se connecte au serveur que vous avez démarré.

8281cd520b191970.png

6. Félicitations

Vous avez appris à créer et à lancer une application Web Java Spring Boot directement depuis Cloud Shell.

En savoir plus