Spring Boot: Google Cloud Platform

Google Cloud Platform proporciona servicios de computación en la nube que ejecutan la aplicación Spring Boot en el entorno de la nube. En este capítulo, veremos cómo implementar la aplicación Spring Boot en la plataforma del motor de aplicaciones GCP.

Primero, descargue la aplicación Spring Boot de Gradle build desde la página Spring Initializer www.start.spring.io . Observe la siguiente captura de pantalla.

Ahora, en el archivo build.gradle, agregue el complemento appengine de Google Cloud y la dependencia de classpath de appengine.

El código para el archivo build.gradle se proporciona a continuación:

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')
}

Ahora, escriba un punto final HTTP simple y devuelve el éxito de la cadena como se muestra:

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";
   }
}

A continuación, agregue el archivo app.yml en el directorio src / main / appengine como se muestra:

runtime: java
env: flex

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

Ahora, vaya a la consola de Google Cloud y haga clic en Activar el shell de la nube de Google en la parte superior de la página.

Ahora, mueva sus archivos de origen y el archivo Gradle al directorio de inicio de su máquina en la nube de Google utilizando el shell de la nube de Google.

Ahora, ejecute el comando gradle appengineDeploy y desplegará su aplicación en Google Cloud appengine.

Note - GCP debe tener habilitada la facturación y antes de implementar su aplicación en appengine, debe crear la plataforma de appengine en GCP.

La implementación de su aplicación en la plataforma appengine de GCP llevará unos minutos.

Después de una compilación exitosa, puede ver la URL del servicio en la ventana de la consola.

Ahora, presione la URL del servicio y vea el resultado.

Google Cloud SQL

Para conectar Google Cloud SQL a su aplicación Spring Boot, debe agregar las siguientes propiedades en su archivo application.properties.

Formato de 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 - La aplicación Spring Boot y Google Cloud SQL deben estar en el mismo proyecto de GCP.

El archivo application.properties se muestra a continuación.

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

Los usuarios del archivo YAML pueden agregar las siguientes propiedades a su archivo 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