Postavite aplikaciju Spring Boot na Google App Engine

1. Pregled

U ovom vodiču pokazat ćemo kako rasporediti aplikaciju iz našeg jednostavnog programa Bootstrap pomoću vodiča Spring Boot u App Engine na Google Cloud Platform.

Kao dio ovoga ćemo:

  • Konfigurirajte Google Cloud Platform Console i SDK
  • Upotrijebite Cloud SQL za stvaranje MySQL instance
  • Konfigurirajte aplikaciju za Spring Cloud GCP
  • Postavite aplikaciju na App Engine i testirajte je

2. Konfiguracija Google Cloud Platform

GCP konzolu možemo koristiti da pripremimo lokalno okruženje za GCP. Postupak instalacije možemo pronaći na službenim web stranicama.

Stvorimo projekt na GCP-u pomoću GCP konzole:

gcloud init

Dalje, konfigurirajmo naziv projekta:

gcloud config postavite projekt baeldung-spring-boot-bootstrap

Tada ćemo instalirati podršku za App Engine i stvoriti instancu App Engine:

gcloud komponente instalirati app-engine-java gcloud aplikacija stvoriti

Naša aplikacija trebat će se povezati s MySQL bazom podataka u okruženju Cloud SQL. Kako Cloud SQL ne nudi besplatnu razinu, morat ćemo omogućiti naplatu na GCP računu.

Dostupne razine možemo lako provjeriti:

gcloud sql tierski popis 

Prije nastavka trebali bismo upotrijebiti web lokaciju GCP kako bismo omogućili API za Cloud SQL Admin.

Sada možemo stvoriti MySQL instancu i bazu podataka u Cloud SQL-u koristeći Cloud Console ili SDK CLI. Tijekom ovog postupka odabrat ćemo regiju i pružiti naziv instance i naziv baze podataka. Važno je da se aplikacija i instanca baze podataka nalaze u istoj regiji.

Budući da ćemo instalirati aplikaciju na europa-zapad2, učinimo isto za primjer:

# stvoriti instancu gcloud sql instance create \ baeldung-spring-boot-bootstrap-db \ --tier = db-f1-micro \ --region = europe-west2 # stvoriti bazu podataka gcloud sql baze podataka create \ baeldung_bootstrap_db \ ​​--instance = baeldung -proljeće-boot-bootstrap-db

3. Ovisnosti o GCP-u za Spring Cloud

Naša aplikacija trebat će ovisnosti iz Spring Cloud GCP projekta za API-je nativne u oblaku. Za to upotrijebimo Maven profil s imenom oblak-gcp:

 cloud-gcp org.springframework.cloud spring-cloud-gcp-starter 1.0.0.RELEASE org.springframework.cloud spring-cloud-gcp-starter-sql-mysql 1.0.0.RELEASE 

Zatim dodajemo dodatak App Engine Maven:

    com.google.cloud.tools appengine-maven-plugin 1.3.2 

4. Konfiguracija aplikacije

Sada, definirajmo konfiguraciju koja aplikaciji omogućuje upotrebu izvornih resursa u oblaku poput baze podataka.

Spring Cloud GCP koristi spring-cloud-bootstrap.svojstva kako biste odredili naziv aplikacije:

spring.cloud.appId = baeldung-spring-boot-bootstrap

Upotrijebit ćemo proljetni profil s imenom gcp za ovu implementaciju i trebat ćemo konfigurirati vezu s bazom podataka. Stoga mi stvaramo src / main / resources / application-gcp.properties:

spring.cloud.gcp.sql.instance-connection-name = \ baeldung-spring-boot-bootstrap: europe-west2: baeldung-spring-boot-bootstrap-db spring.cloud.gcp.sql.database-name = baeldung_bootstrap_db

5. Raspoređivanje

Google App Engine nudi dva Java okruženja:

  • the Standard okruženje pruža Jetty i JDK8 i Fleksibilno okruženje pruža samo JDK8 i
  • fleksibilno okruženje najbolja je opcija za aplikacije Spring Boot.

Mi trebamo gcp i mysql Proljetni profili da budu aktivni, tako da pružamo SPRING_PROFILES_ACTIVE varijablu okruženja za aplikaciju dodavanjem u konfiguraciju implementacije u sustavu Windows src / main / appengine / app.yaml:

runtime: java env: flex runtime_config: jdk: openjdk8 env_variables: SPRING_PROFILES_ACTIVE: "gcp, mysql" handlers: - url: /.* skripta: ovo polje je obavezno, ali se zanemaruje manual_scaling: instance: 1

Sada, izradimo i rasporedimo aplikaciju pomoću slijepog crijeva dodatak maven:

mvn čist paket dodatak: implementacija -P cloud-gcp

Nakon implementacije možemo pregledavati ili replicirati datoteke dnevnika:

# prikaz dnevnika aplikacije gcloud pročitajte # tail gcloud aplikacija zapisuje rep

Sada, provjerimo funkcionira li naša aplikacija dodavanjem knjige:

http POST //baeldung-spring-boot-bootstrap.appspot.com/api/books \ author = "Iain M. Banke" 

Očekujući sljedeći izlaz:

HTTP / 1.1 201 {"autor": "Iain M. Banks", "id": 1, "naslov": "Igrač igara"}

6. Skaliranje aplikacije

Zadana razmjera u App Engineu je automatska.

Možda je bolje započeti s ručnim skaliranjem dok ne shvatimo ponašanje u vremenu izvođenja i povezane proračune i povezane troškove. Aplikaciji možemo dodijeliti resurse i konfigurirati automatsko skaliranje app.yaml:

# Resursi aplikacijskih resursa: cpu: 2 memory_gb: 2 disk_size_gb: 10 svezaka: - ime: ramdisk1 volume_type: tmpfs size_gb: 0.5 # Automatsko skaliranje automatic_scaling: min_num_instance: 1 max_num_instance: 4 cool_down_period_sec: 180 cpu_utilization: 0.6_putizacija

7. Zaključak

U ovom uputstvu mi:

  • Konfigurirana Google Cloud Platform i App Engine
  • Stvorio je MySQL instancu s Cloud SQL-om
  • Konfiguriran Spring Cloud GCP za upotrebu MySQL-a
  • Primijenili smo našu konfiguriranu aplikaciju Spring Boot i
  • Testirao i skalirao aplikaciju

Uvijek se možemo obratiti Googleovoj opsežnoj dokumentaciji App Engine za dodatne pojedinosti.

Kompletni izvorni kod naših primjera ovdje je, kao i uvijek, završen na GitHubu.


$config[zx-auto] not found$config[zx-overlay] not found