Spring Boot - Google Cloud Platform

Google Cloud Platform fournit des services de cloud computing qui exécutent l'application Spring Boot dans l'environnement cloud. Dans ce chapitre, nous allons voir comment déployer l'application Spring Boot dans la plate-forme de moteur d'application GCP.

Tout d'abord, téléchargez l'application Gradle build Spring Boot à partir de la page Spring Initializer www.start.spring.io . Observez la capture d'écran suivante.

Maintenant, dans le fichier build.gradle, ajoutez le plug-in Google Cloud appengine et la dépendance de chemin de classe appengine.

Le code du fichier build.gradle est donné ci-dessous -

buildscript {
   ext {
      springBootVersion = '1.5.9.RELEASE'
   }
   repositories {
      mavenCentral()
   }
   dependencies {
      classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
      classpath 'com.google.cloud.tools:appengine-gradle-plugin:1.3.3'
   }
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'com.google.cloud.tools.appengine'

group = 'com.tutorialspoint'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8

repositories {
   mavenCentral()
}
dependencies {
   compile('org.springframework.boot:spring-boot-starter-web')
   testCompile('org.springframework.boot:spring-boot-starter-test')
}

Maintenant, écrivez un simple point de terminaison HTTP et il renvoie le succès de la chaîne comme indiqué -

package com.tutorialspoint.appenginedemo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class AppengineDemoApplication {
   public static void main(String[] args) {
      SpringApplication.run(AppengineDemoApplication.class, args);
   }
   @RequestMapping(value = "/")
   public String success() {
      return "APP Engine deployment success";
   }
}

Ensuite, ajoutez le fichier app.yml sous le répertoire src / main / appengine comme indiqué -

runtime: java
env: flex

handlers:
- url: /.*
   script: this field is required, but ignored

Maintenant, accédez à la console Google Cloud et cliquez sur Activer le shell cloud Google en haut de la page.

Maintenant, déplacez vos fichiers sources et votre fichier Gradle dans le répertoire de base de votre machine Google Cloud à l'aide de Google Cloud Shell.

Maintenant, exécutez la commande gradle appengineDeploy et elle déploiera votre application dans l'appengine Google Cloud.

Note - GCP doit être activé pour la facturation et avant de déployer votre application dans appengine, vous devez créer la plate-forme appengine dans GCP.

Le déploiement de votre application sur la plateforme appengine GCP prendra quelques minutes.

Une fois la construction réussie, vous pouvez voir l'URL du service dans la fenêtre de la console.

Maintenant, appuyez sur l'URL du service et voyez la sortie.

Google Cloud SQL

Pour connecter Google Cloud SQL à votre application Spring Boot, vous devez ajouter les propriétés suivantes dans votre fichier application.properties.

Format d'URL JDBC

jdbc:mysql://google/<DATABASE-NAME>?cloudSqlInstance = <GOOGLE_CLOUD_SQL_INSTANCE_NAME> &socketFactory = com.google.cloud.sql.mysql.SocketFactory&user = <USERNAME>&password = <PASSWORD>

Note - L'application Spring Boot et Google Cloud SQL doivent être dans le même projet GCP.

Le fichier application.properties est donné ci-dessous.

spring.dbProductService.driverClassName = com.mysql.jdbc.Driver
spring.dbProductService.url = jdbc:mysql://google/PRODUCTSERVICE?cloudSqlInstance = springboot-gcp-cloudsql:asia-northeast1:springboot-gcp-cloudsql-instance&socketFactory = com.google.cloud.sql.mysql.SocketFactory&user = root&password = rootspring.dbProductService.username = root

spring.dbProductService.password = root
spring.dbProductService.testOnBorrow = true
spring.dbProductService.testWhileIdle = true
spring.dbProductService.timeBetweenEvictionRunsMillis = 60000
spring.dbProductService.minEvictableIdleTimeMillis = 30000
spring.dbProductService.validationQuery = SELECT 1
spring.dbProductService.max-active = 15
spring.dbProductService.max-idle = 10
spring.dbProductService.max-wait = 8000

Les utilisateurs du fichier YAML peuvent ajouter les propriétés ci-dessous à votre fichier application.yml.

spring:
   datasource: 
      driverClassName: com.mysql.jdbc.Driver
      url: "jdbc:mysql://google/PRODUCTSERVICE?cloudSqlInstance=springboot-gcp-cloudsql:asia-northeast1:springboot-gcp-cloudsql-instance&socketFactory=com.google.cloud.sql.mysql.SocketFactory&user=root&password=root"
      password: "root"
      username: "root"
      testOnBorrow: true
      testWhileIdle: true
      validationQuery: SELECT 1
      
      max-active: 15
      max-idle: 10
      max-wait: 8000