Spring Boot - Google Cloud Platform
Google Cloud Platform, Spring Boot uygulamasını bulut ortamında çalıştıran bir bulut bilişim hizmetleri sağlar. Bu bölümde, Spring Boot uygulamasının GCP uygulama motoru platformunda nasıl dağıtılacağını göreceğiz.
Öncelikle, Gradle build Spring Boot uygulamasını www.start.spring.io Spring Initializer sayfasından indirin . Aşağıdaki ekran görüntüsüne bakın.
Şimdi, build.gradle dosyasında, Google Cloud appengine eklentisini ve appengine sınıf yolu bağımlılığını ekleyin.
Build.gradle dosyasının kodu aşağıda verilmiştir -
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')
}
Şimdi, basit bir HTTP Uç Noktası yazın ve gösterildiği gibi String başarısını döndürür -
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";
}
}
Ardından, app.yml dosyasını src / main / appengine dizini altına gösterildiği gibi ekleyin -
runtime: java
env: flex
handlers:
- url: /.*
script: this field is required, but ignored
Şimdi, Google Cloud konsoluna gidin ve sayfanın üst kısmındaki Google bulut kabuğunu etkinleştir'i tıklayın.
Şimdi, kaynak dosyalarınızı ve Gradle dosyanızı google bulut kabuğunu kullanarak google bulut makinenizin ana dizinine taşıyın.
Şimdi gradle appengineDeploy komutunu yürütün ve uygulamanızı Google Cloud uygulama motoruna dağıtacaktır.
Note - GCP'de faturalandırma etkin olmalıdır ve uygulamanızı uygulama motoruna dağıtmadan önce GCP'de uygulama motoru platformu oluşturmalısınız.
Uygulamanızı GCP uygulama motoru platformuna dağıtmak birkaç dakika sürecektir.
Başarılı bir şekilde oluşturulduktan sonra, konsol penceresinde Servis URL'sini görebilirsiniz.
Şimdi, servis URL'sine basın ve çıktıyı görün.
Google Cloud SQL
Google Cloud SQL'i Spring Boot uygulamanıza bağlamak için aşağıdaki özellikleri application.properties dosyanıza eklemeniz gerekir.
JDBC URL Biçimi
jdbc:mysql://google/<DATABASE-NAME>?cloudSqlInstance = <GOOGLE_CLOUD_SQL_INSTANCE_NAME> &socketFactory = com.google.cloud.sql.mysql.SocketFactory&user = <USERNAME>&password = <PASSWORD>
Note - Spring Boot uygulaması ve Google Cloud SQL aynı GCP projesinde olmalıdır.
Application.properties dosyası aşağıda verilmiştir.
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 dosyası kullanıcıları application.yml dosyanıza aşağıdaki özellikleri ekleyebilir.
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