Thông tin về lớp học lập trình này
1. Trước khi bắt đầu
Cloud SQL là một dịch vụ cơ sở dữ liệu được quản lý hoàn toàn giúp bạn dễ dàng thiết lập, duy trì, quản lý và quản trị các cơ sở dữ liệu quan hệ trên Google Cloud. Bạn có thể sử dụng Cloud SQL với MySQL cho MySQL hoặc Cloud SQL cho PostgreSQL.
Trong lớp học lập trình này, bạn sẽ tìm hiểu cách thiết lập phiên bản Cloud SQL cho MySQL, sau đó cập nhật ứng dụng Spring Boot để sử dụng phiên bản Cloud SQL làm bộ nhớ phụ trợ. Spring Boot Starter dành cho Google Cloud SQL cung cấp DataSource được định cấu hình tự động, cho phép bạn dễ dàng tận dụng Cloud SQL mà không cần thay đổi nhiều. Lớp học lập trình này sử dụng mã nguồn Spring Petclinic.
Điều kiện tiên quyết
- Làm quen với công cụ và ngôn ngữ lập trình Java
- Kiến thức về các trình chỉnh sửa văn bản Linux tiêu chuẩn, chẳng hạn như Vim, Emacs và nano
Bạn sẽ thực hiện
- Dùng Cloud SQL trong ứng dụng Spring Boot.
Bạn cần có
- Một dự án Google Cloud
- Một trình duyệt, chẳng hạn như Google Chrome hoặc Firefox
2. Thiết lập và các yêu cầu
Thiết lập môi trường theo tiến độ riêng
- Đăng nhập vào Cloud Console rồi tạo một dự án mới hoặc sử dụng lại một dự án hiện có. (Nếu chưa có tài khoản Gmail hoặc G Suite, thì bạn phải tạo một tài khoản.)
Hãy ghi nhớ mã dự án, một tên duy nhất trên tất cả các dự án Google Cloud (tên ở trên đã được sử dụng và sẽ không hoạt động cho bạn!). Lớp học này sẽ được gọi sau này trong lớp học lập trình này là PROJECT_ID
.
- Tiếp theo, bạn sẽ cần bật tính năng thanh toán trong Cloud Console để sử dụng tài nguyên của Google Cloud.
Nếu tham gia lớp học lập trình này, bạn sẽ không mất quá vài đô la, nhưng có thể sẽ hiệu quả hơn nếu bạn quyết định sử dụng nhiều tài nguyên hơn hoặc nếu bạn để các tài nguyên đó chạy.
Người dùng mới của Google Cloud đủ điều kiện dùng thử 300 đô la dùng thử miễn phí.
Kích hoạt Cloud Shell
- Từ Cloud Console, hãy nhấp vào Kích hoạt Cloud Shell
.
Nếu bạn chưa từng khởi động Cloud Shell trước đây, thì bạn sẽ được trình bày với một màn hình trung gian (dưới màn hình đầu tiên) mô tả đó là gì. Nếu trường hợp đó xảy ra, hãy nhấp vào Tiếp tục (và bạn sẽ không bao giờ nhìn thấy lại). Đây là giao diện của màn hình một lần:
Chỉ mất vài phút để cấp phép và kết nối với Cloud Shell.
Máy ảo này được tải bằng tất cả các công cụ phát triển mà bạn cần. cung cấp một thư mục gốc 5GB cố định và chạy trong Google Cloud, qua đó nâng cao đáng kể hiệu suất và khả năng xác thực mạng. Phần lớn, nếu không phải là tất cả công việc của bạn trong lớp học lập trình này, thì bạn chỉ cần thực hiện một trình duyệt hoặc Chromebook của mình.
Sau khi kết nối với Cloud Shell, bạn sẽ thấy rằng bạn đã được xác thực và dự án đã được đặt thành mã dự án của bạn.
- Chạy lệnh sau trong Cloud Shell để xác nhận rằng bạn đã được xác thực:
gcloud auth list
Đầu ra lệnh
Credentialed Accounts ACTIVE ACCOUNT * <my_account>@<my_domain.com> To set the active account, run: $ gcloud config set account `ACCOUNT`
gcloud config list project
Đầu ra lệnh
[core] project = <PROJECT_ID>
Nếu chưa, bạn có thể đặt lệnh đó bằng lệnh sau:
gcloud config set project <PROJECT_ID>
Đầu ra lệnh
Updated property [core/project].
3. Thiết lập phiên bản Cloud SQL cho MySQL
- Sau khi Cloud Shell chạy, bạn có thể sử dụng dòng lệnh để tạo một phiên bản Cloud SQL mới:
$ gcloud sql instances create my-instance
Sau khi thao tác này hoàn tất, bản sao của bạn sẽ sẵn sàng để sử dụng.
- Bây giờ, hãy tạo một cơ sở dữ liệu mà bạn sẽ dùng cho ứng dụng Petclinic:
$ gcloud sql databases create petclinic --instance my-instance
Bạn cũng có thể truy cập và thiết lập phiên bản này qua Cloud Console.
- Lấy tên kết nối phiên bản ở định dạng
project-id:zone-id:instance-id
bằng cách chạy lệnh sau. Bạn sẽ sử dụng mã này sau khi định cấu hình ứng dụng Spring Boot.
$ gcloud sql instances describe my-instance |grep connectionName
4. Sao chép và thử nghiệm ứng dụng Petclinic tại địa phương
- Bây giờ, bạn sẽ sao chép và thử nghiệm ứng dụng Petclinic tại địa phương.
$ git clone https://github.com/spring-projects/spring-petclinic $ cd spring-petclinic $ ./mvnw spring-boot:run
- Nhấp vào Xem trước trên web
trong Cloud Shell , sau đó chọn Xem trước trên cổng 8080.
Bạn sẽ thấy trang chủ Petclinic như được hiển thị tại đây trong trình duyệt:
- Duyệt qua và thêm dữ liệu. Ứng dụng sử dụng cơ sở dữ liệu HyperSQL trong bộ nhớ. Bây giờ, bạn sẽ chuyển từ HyperSQL sang Cloud SQL làm cơ sở dữ liệu của bạn.
5. Sử dụng Cloud SQL trong Petclinic
Cập nhật tệp pom.xml Maven
Cập nhật tệp pom.xml
như hướng dẫn ở đây. Điều kiện khởi động này cung cấp một đối tượng DataSource
được tự động định cấu hình để kết nối với cơ sở dữ liệu Cloud SQL của bạn. Bạn có thể sử dụng Vim, nano hoặc Emacs để chỉnh sửa tệp.
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>
Cập nhật application-mysql.properties
- Thay thế nội dung của
src/main/resources/application-mysql.properties
bằng các thuộc tính sau. Bạn cần đặt tên kết nối phiên bản từ bước trước đó.
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
- Cuối cùng, hãy bật cấu hình Cloud SQL cho MySQL trong ứng dụng Spring Boot bằng cách thêm
mysql
vào thuộc tínhapplication.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. Chạy ứng dụng trong Cloud Shell
- Bạn có thể khởi động ứng dụng Bốt mùa xuân thường bằng trình bổ trợ Khởi động mùa xuân:
$ ./mvnw -DskipTests spring-boot:run
- Sau khi ứng dụng khởi động, hãy nhấp vào Xem trước trên web
trong thanh công cụ Cloud Shell, sau đó chọn Xem trước trên cổng 8080.
Bạn sẽ thấy lại trang chủ Spring Petclinic như trong trình duyệt của mình:
- Thêm một mục dành cho chủ sở hữu thú cưng.
Không bắt buộc: Xác minh rằng Cloud SQL vẫn duy trì dữ liệu
Bạn có thể xác minh rằng dữ liệu bạn nhập đã được giữ nguyên cho Cloud SQL như được hiển thị ở đây. Nhấn Enter (return on Macintosh) khi được nhắc nhập mật khẩu.
$ 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;
Không bắt buộc: Xóa thực thể Cloud SQL
Sau khi dừng ứng dụng, bạn có thể xóa phiên bản Cloud SQL bằng lệnh sau:
$ gcloud sql instances delete my-instance