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 intégré au navigateur qui vous permet d'accéder aux ressources Google Cloud. Cloud Shell vous permet de gérer facilement vos projets et vos ressources Cloud Console sans avoir à installer Cloud SDK ni aucun autre outil sur votre système.

Vous utiliserez Cloud Shell pour créer et lancer une application Spring Boot sans jamais quitter votre navigateur. Pour ce faire, utilisez l'exemple de code fourni par la page Concevoir une application avec Spring Boot.

Prérequis

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

Objectifs de l'atelier

  • Utiliser 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 à partir de Cloud Shell.

Prérequis

2. Préparation

Configuration de l'environnement au rythme de chacun

  1. Si vous n'avez pas encore de compte Google, vous devez en créer un. Connectez-vous à la console Cloud et créez un projet.

3c50189ec031c0cf.png

Capture d'écran du 10-02-2016 12:45:26.png

Mémorisez l'ID du projet, qui est un nom unique parmi tous les projets Google Cloud (le nom dans l'image est déjà pris et ne vous convient pas). Il sera désigné par le nom PROJECT_ID dans la suite de l'atelier de programmation.

  1. Vous devez ensuite activer la facturation dans la console Cloud pour pouvoir utiliser les ressources Google Cloud. L'exécution de cet atelier de programmation ne devrait pas vous coûter plus cher que quelques dollars, mais ce montant peut être plus élevé si vous décidez d'utiliser plus de ressources ou si vous ne les laissez pas s'exécuter.

Les nouveaux utilisateurs de Google Cloud peuvent bénéficier d'un essai sans frais de 300$.

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 nouvelle application Spring Boot

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

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

Cette opération crée un répertoire avec un nouveau projet Maven, ainsi que le fichier pom.xml de Maven, 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 nouvelle définition de classe Helloworld en plus de la définition actuelle.

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 Prévisualiser 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 nouvelle application Web Java Spring Boot directement depuis Cloud Shell.

En savoir plus