Łączenie aplikacji Spring Run z Cloud SQL

Łączenie aplikacji Spring Run z Cloud SQL

Informacje o tym ćwiczeniu (w Codelabs)

subjectOstatnia aktualizacja: kwi 22, 2020
account_circleDokument stworzony przez pracownika Google

1. Zanim zaczniesz

Cloud SQL to w pełni zarządzana usługa bazy danych ułatwiająca konfigurację i obsługę relacyjnych baz danych w Google Cloud oraz zarządzanie nimi i zarządzanie nimi. Możesz używać Cloud SQL z Cloud SQL dla MySQL lub Cloud SQL dla PostgreSQL.

Z tego modułu dowiesz się, jak skonfigurować instancję Cloud SQL dla MySQL, a następnie zaktualizować aplikację Spring rozruchu tak, aby używała instancji Cloud SQL jako miejsca na dane backendu. Spring Starter Starter dla Google Cloud SQL to automatycznie skonfigurowana DataSource, która pozwala łatwo korzystać z Cloud SQL przy minimalnych zmianach w kodzie. Te ćwiczenia korzystają z kodu źródłowego Spring Petclinic.

Wymagania wstępne

  • Znajomość języka programowania i narzędzi Java
  • znajomości standardowych edytorów tekstu systemu Linux, takich jak Vim, Emacs czy nano.

Co chcesz zrobić

  • Użyj Cloud SQL w aplikacji Spring rozruchu.

Czego potrzebujesz

2. Konfiguracja i wymagania

Konfiguracja środowiska we własnym tempie

  1. Zaloguj się w Cloud Console i utwórz nowy projekt lub ponownie wykorzystaj istniejący. Jeśli nie masz jeszcze konta Gmail lub G Suite, musisz je utworzyć.

Zapamiętaj identyfikator projektu, unikalną nazwę we wszystkich projektach Google Cloud (powyższa nazwa została już użyta i nie będzie działać). W ćwiczeniach nazywamy je później PROJECT_ID.

  1. Aby móc używać zasobów Google Cloud, musisz najpierw włączyć płatności w Cloud Console.

Ćwiczenia z programowania nie powinny kosztować więcej niż kilka dolarów, ale mogą być większe, jeśli zdecydujesz się wykorzystać więcej zasobów lub pozostawisz to uruchomione.

Nowi użytkownicy Google Cloud mogą skorzystać z bezpłatnej wersji próbnej 300 USD.

Aktywowanie Cloud Shell

  1. W Cloud Console kliknij Aktywuj Cloud Shell .

Jeśli nie korzystasz jeszcze z Cloud Shell, wyświetli się pośredni ekran (w części strony widocznej po przewinięciu), na którym widać, co to jest. Jeśli tak jest, kliknij Dalej (tj. nie zobaczysz tego ponownie). Tak wygląda jednorazowy ekran:

Udostępnienie usługi Cloud Shell i połączenie się z nią powinno zająć kilka minut.

Ta maszyna wirtualna jest wyposażona we wszystkie potrzebne narzędzia dla programistów. Oferuje trwały katalog domowy o pojemności 5 GB oraz działa w Google Cloud, co znacznie zwiększa wydajność sieci i uwierzytelnianie. Znaczna część (lub nawet całość) zadań z tego ćwiczenia z programowania można wykonać w przeglądarce lub na Chromebooku.

Po połączeniu z Cloud Shell powinno być widoczne, że projekt jest już uwierzytelniony, a projekt jest już ustawiony na jego identyfikator.

  1. Uruchom następujące polecenie w Cloud Shell, aby potwierdzić, że jesteś uwierzytelniony:
gcloud auth list

Polecenie wyjściowe

 Credentialed Accounts
ACTIVE  ACCOUNT
*       <my_account>@<my_domain.com>

To set the active account, run:
    $ gcloud config set account `ACCOUNT`
gcloud config list project

Polecenie wyjściowe

[core]
project = <PROJECT_ID>

Jeśli nie, możesz ustawić ją za pomocą tego polecenia:

gcloud config set project <PROJECT_ID>

Polecenie wyjściowe

Updated property [core/project].

3. Konfigurowanie instancji Cloud SQL dla MySQL

  1. Po uruchomieniu Cloud Shell możesz utworzyć nową instancję Cloud SQL za pomocą wiersza poleceń:
$ gcloud sql instances create my-instance

Po zakończeniu tej instancji instancja będzie gotowa do użycia.

  1. Teraz utwórz bazę danych, której będziesz używać w aplikacji Petclinic:
$ gcloud sql databases create petclinic --instance my-instance

Masz też dostęp do instancji i możesz ją skonfigurować w Cloud Console.

  1. Pobierz nazwę połączenia instancji w formacie project-id:zone-id:instance-id, uruchamiając następujące polecenie. Użyjesz jej później podczas konfigurowania aplikacji Spring rozruchu.
$ gcloud sql instances describe my-instance |grep connectionName

4. Klonowanie i testowanie aplikacji Petclinic lokalnie

  1. Skopiujesz i przetestujesz aplikację Petclinic lokalnie.
$ git clone https://github.com/spring-projects/spring-petclinic
$ cd spring-petclinic
$ ./mvnw spring-boot:run
  1. Kliknij Podgląd w przeglądarce w Cloud Shell , a następnie wybierz Podgląd na porcie 8080.

Powinna pojawić się strona główna Petclinic w przeglądarce:

  1. Wypróbuj różne funkcje i dodaj dane. Aplikacja używa bazy danych HyperSQL w pamięci. Teraz przełączysz się z HyperSQL na Cloud SQL jako bazę danych.

5. Używanie Cloud SQL w Petclinic

Aktualizacja pliku Maven

Zaktualizuj plik pom.xml w sposób pokazany tutaj. Polecenie inicjujące udostępnia automatycznie skonfigurowany obiekt DataSource, który łączy się z Twoją bazą danych Cloud SQL. Do edytowania pliku możesz użyć Vim, nano lub Emacs.

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" ...>
    ...
   
<!-- Add Spring Cloud GCP Dependency BOM -->
   
<dependencyManagement>
       
<dependencies>
         
<dependency>
         
<groupId>org.springframework.cloud</groupId>
         
<artifactId>spring-cloud-gcp-dependencies</artifactId>
         
<version>1.0.0.RC1</version>
         
<type>pom</type>
         
<scope>import</scope>
         
</dependency>
     
</dependencies>
   
</dependencyManagement>
   
<dependencies>
      ...
     
<!-- Add CloudSQL Starter for MySQL -->
     
<dependency>
       
<groupId>org.springframework.cloud</groupId>
       
<artifactId>spring-cloud-gcp-starter-sql-mysql</artifactId>
     
</dependency>
      ...
   
</dependencies>
   
<repositories>
     
<!-- Use Spring Milestone Repository -->
     
<repository>
       
<id>repository.spring.milestone</id>
       
<name>Spring Milestones Repository</name>
       
<url>http://repo.spring.io/milestone</url>
     
</repository>
   
</repositories>
</project>

Aktualizowanie aplikacji-mysql.properties

  1. Zastąp zawartość src/main/resources/application-mysql.properties tymi właściwościami. Musisz ustawić nazwę połączenia instancji z poprzedniego kroku.

src/main/resources/application-mysql.properties

database=mysql

# Delete the rest of the original content of the file and replace with the following:
spring
.cloud.gcp.sql.database-name=petclinic
spring
.cloud.gcp.sql.instance-connection-name=YOUR_CLOUD_SQL_INSTANCE_CONNECTION_NAME

# Initialize the database since the newly created Cloud SQL database has no tables. The following flag is for Spring Boot 2.
spring
.datasource.initialization-mode=always
  1. Na koniec włącz profil Cloud SQL dla MySQL w aplikacji Spring rozruchu, dodając mysql do usługi application.properties' spring.profiles.active:

src/main/resources/application.properties

# Keep the content of the file the same
...

# In the last line, add mysql to the spring.profiles.active property
spring
.profiles.active=mysql

6. Uruchamianie aplikacji w Cloud Shell

  1. Sprężynową aplikacją Spring rozruchu możesz normalnie uruchomić za pomocą wtyczki Spring rozruchu:
$ ./mvnw -DskipTests spring-boot:run
  1. Po uruchomieniu aplikacji kliknij Podgląd w przeglądarce na pasku narzędzi Cloud Shell, a następnie wybierz Podgląd na porcie 8080.

Wrócisz na stronę główną Spring Petclinic, jak widać w przeglądarce:

  1. Dodaj wpis właściciela zwierząt.

Opcjonalnie: sprawdź, czy Cloud SQL zachował dane

Możesz sprawdzić, czy wpisane dane zostały utrwalone w Cloud SQL, jak pokazano tutaj. Po wyświetleniu prośby o hasło naciśnij Enter (na Macu).

$ gcloud sql connect my-instance -u root
Whitelisting your IP for incoming connection for 5 minutes...done.
Enter password: <Press Enter, there is no password by default>
...
mysql> use petclinic;
mysql> select * from owners;
  

Opcjonalnie: usuwanie instancji Cloud SQL

Po zatrzymaniu aplikacji możesz usunąć instancję Cloud SQL za pomocą tego polecenia:

$ gcloud sql instances delete my-instance 

7. Gratulacje

Wiesz już, jak połączyć się z Cloud SQL w aplikacji Spring rozruchu.

Więcej informacji