Informacje o tym ćwiczeniu (w Codelabs)
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
- Projekt Google Cloud
- Przeglądarka, na przykład Google Chrome lub Firefox.
2. Konfiguracja i wymagania
Konfiguracja środowiska we własnym tempie
- 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
.
- 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
- 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.
- 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
- 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.
- 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.
- 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
- Skopiujesz i przetestujesz aplikację Petclinic lokalnie.
$ git clone https://github.com/spring-projects/spring-petclinic $ cd spring-petclinic $ ./mvnw spring-boot:run
- 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:
- 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
- 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
- Na koniec włącz profil Cloud SQL dla MySQL w aplikacji Spring rozruchu, dodając
mysql
do usługiapplication.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
- Sprężynową aplikacją Spring rozruchu możesz normalnie uruchomić za pomocą wtyczki Spring rozruchu:
$ ./mvnw -DskipTests spring-boot:run
- 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:
- 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.