Учебники

Spring Boot — облачная платформа Google

Google Cloud Platform предоставляет сервисы облачных вычислений, которые запускают приложение Spring Boot в облачной среде. В этой главе мы рассмотрим, как развернуть приложение Spring Boot на платформе ядра приложений GCP.

Сначала загрузите приложение Spring Boot для сборки Gradle со страницы Spring Initializer www.start.spring.io . Посмотрите на следующий скриншот.

Страница инициализатора весны

Теперь в файле build.gradle добавьте плагин appengine для Google Cloud и зависимость пути к классам appengine.

Код для файла build.gradle приведен ниже —

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

Теперь напишите простую конечную точку HTTP, и она вернет String success, как показано на рисунке —

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

Затем добавьте файл app.yml в каталог src / main / appengine, как показано на рисунке —

runtime: java
env: flex

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

Теперь перейдите в консоль Google Cloud и щелкните «Активировать облачную оболочку Google» в верхней части страницы.

Активировать Google Cloud Shell

Теперь переместите исходные файлы и файл Gradle в домашний каталог вашего облачного компьютера Google с помощью облачной оболочки Google.

Перемещение в домашний каталог с помощью Google Cloud Shell

Теперь выполните команду gradle appengineDeploy, и она развернет ваше приложение в приложении Google Cloud.

Примечание. В GCP должна быть включена возможность выставления счетов, и перед развертыванием приложения в appengine необходимо создать платформу appengine в GCP.

Развертывание вашего приложения на платформе GCP appengine займет несколько минут.

После успешной сборки вы можете увидеть URL службы в окне консоли.

Страница инициализатора весны

Теперь нажмите URL службы и посмотрите результат.

Успех в разработке движка приложений

Google Cloud SQL

Чтобы подключить Google Cloud SQL к вашему приложению Spring Boot, вы должны добавить следующие свойства в файл application.properties.

Формат URL JDBC

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

Примечание. Приложение Spring Boot и Google Cloud SQL должны находиться в одном проекте GCP.

Файл application.properties приведен ниже.

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

Пользователи файла YAML могут добавить следующие свойства в ваш файл application.yml.