О практической работе
1. Прежде чем вы начнете
Cloud SQL — это полностью управляемая служба базы данных, которая упрощает настройку, обслуживание, управление и администрирование ваших реляционных баз данных в Google Cloud. Вы можете использовать Cloud SQL либо с Cloud SQL для MySQL, либо с Cloud SQL для PostgreSQL.
В этой лабораторной работе вы узнаете, как настроить экземпляр Cloud SQL для MySQL, а затем обновить приложение Spring Boot, чтобы использовать экземпляр Cloud SQL в качестве внутреннего хранилища. Spring Boot Starter для Google Cloud SQL предоставляет автоматически настраиваемый источник данных, позволяющий легко использовать преимущества Cloud SQL с минимальными изменениями в коде. В этой лаборатории кода используется исходный код Spring Petclinic .
Предпосылки
- Знание языка программирования Java и инструментов
- Знание стандартных текстовых редакторов Linux, таких как Vim, Emacs и nano.
Что ты будешь делать
- Используйте Cloud SQL в своем приложении Spring Boot.
Что вам понадобится
- Облачный проект Google
- Браузер, такой как Google Chrome или Firefox
2. Настройка и требования
Самостоятельная настройка среды
- Войдите в Cloud Console и создайте новый проект или повторно используйте существующий. (Если у вас еще нет учетной записи Gmail или G Suite, ее необходимо создать .)
Запомните идентификатор проекта, уникальное имя для всех проектов Google Cloud (имя выше уже занято и не будет работать для вас, извините!). Позже в этой кодовой лаборатории он будет упоминаться как PROJECT_ID
.
- Затем вам нужно включить выставление счетов в Cloud Console, чтобы использовать ресурсы Google Cloud.
Выполнение этой лаборатории кода не должно стоить вам больше нескольких долларов, но может быть больше, если вы решите использовать больше ресурсов или оставите их работающими.
Новые пользователи Google Cloud имеют право на бесплатную пробную версию за 300 долларов .
Активировать облачную оболочку
- В облачной консоли нажмите « Активировать Cloud Shell ».
.
Если вы никогда раньше не запускали Cloud Shell, вам будет представлен промежуточный экран (ниже сгиба), описывающий, что это такое. Если это так, нажмите « Продолжить » (и вы больше никогда его не увидите). Вот как выглядит этот одноразовый экран:
Подготовка и подключение к Cloud Shell займет всего несколько минут.
Эта виртуальная машина загружена всеми необходимыми инструментами разработки. Он предлагает постоянный домашний каталог размером 5 ГБ и работает в Google Cloud, что значительно повышает производительность сети и аутентификацию. Многое, если не все, из вашей работы в этой кодовой лаборатории можно выполнить просто с помощью браузера или вашего Chromebook.
После подключения к Cloud Shell вы должны увидеть, что вы уже прошли аутентификацию и что для проекта уже задан идентификатор вашего проекта.
- Выполните следующую команду в Cloud Shell, чтобы подтвердить, что вы прошли аутентификацию:
gcloud auth list
Вывод команды
Credentialed Accounts ACTIVE ACCOUNT * <my_account>@<my_domain.com> To set the active account, run: $ gcloud config set account `ACCOUNT`
gcloud config list project
Вывод команды
[core] project = <PROJECT_ID>
Если это не так, вы можете установить его с помощью этой команды:
gcloud config set project <PROJECT_ID>
Вывод команды
Updated property [core/project].
3. Настройте экземпляр Cloud SQL для MySQL
- После запуска Cloud Shell вы можете использовать командную строку для создания нового экземпляра Cloud SQL:
$ gcloud sql instances create my-instance
После завершения этой операции ваш экземпляр будет готов к использованию.
- Теперь создайте базу данных, которую вы будете использовать для приложения Petclinic:
$ gcloud sql databases create petclinic --instance my-instance
Вы также можете получить доступ к экземпляру и настроить его через облачную консоль .
- Получите имя подключения экземпляра в формате
project-id:zone-id:instance-id
, выполнив следующую команду. Вы будете использовать это позже при настройке приложения Spring Boot.
$ gcloud sql instances describe my-instance |grep connectionName
4. Клонируйте и тестируйте приложение Petclinic локально
- Теперь вы клонируете и тестируете приложение Petclinic локально.
$ git clone https://github.com/spring-projects/spring-petclinic $ cd spring-petclinic $ ./mvnw spring-boot:run
- Нажмите «Веб-просмотр».
в Cloud Shell, затем выберите Preview на порту 8080 .
Вы должны увидеть в браузере домашнюю страницу Petclinic, как показано здесь:
- Поэкспериментируйте и добавьте данные. Приложение использует базу данных HyperSQL в памяти. Теперь вы переключитесь с HyperSQL на использование Cloud SQL в качестве базы данных.
5. Используйте Cloud SQL в Petclinic
Обновите файл Maven pom.xml.
Обновите файл pom.xml
, как показано здесь. Стартер предоставляет автоматически настроенный объект DataSource
для подключения к вашей базе данных Cloud SQL. Вы можете использовать Vim, nano или Emacs для редактирования файла.
пом.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>
Обновить приложение-mysql.properties
- Замените содержимое
src/main/resources/application-mysql.properties
со следующими свойствами. Вам нужно будет установить имя подключения экземпляра из предыдущего шага.
src/основной/ресурсы/приложение-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
- Наконец, включите профиль Cloud SQL для MySQL в приложении Spring Boot, добавив
mysql
в свойствоapplication.properties' spring.profiles.active
:
src/основной/ресурсы/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. Запустите приложение в Cloud Shell
- Вы можете запустить приложение Spring Boot в обычном режиме с помощью плагина Spring Boot:
$ ./mvnw -DskipTests spring-boot:run
- После запуска приложения нажмите « Веб-предварительный просмотр ».
на панели инструментов Cloud Shell, затем выберите Предварительный просмотр на порту 8080 .
Вы должны снова увидеть домашнюю страницу Spring Petclinic в своем браузере, как показано здесь:
- Добавьте запись владельца домашнего животного.
Необязательно: убедитесь, что Cloud SQL сохранил данные.
Вы можете убедиться, что введенные вами данные были сохранены в Cloud SQL, как показано здесь. Нажмите Enter (возврат на Macintosh), когда будет предложено ввести пароль.
$ 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;
Необязательно: удалите свой экземпляр Cloud SQL.
После остановки приложения вы можете удалить экземпляр Cloud SQL с помощью следующей команды:
$ gcloud sql instances delete my-instance
7. Поздравления
Вы узнали, как подключиться к Cloud SQL в своем приложении Spring Boot!