یک برنامه Spring Boot را به Cloud SQL متصل کنید

یک برنامه Spring Boot را به Cloud SQL متصل کنید

درباره این codelab

subjectآخرین به‌روزرسانی: آوریل ۲۲, ۲۰۲۰
account_circleنویسنده: یکی از کارمندان Google

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 یک DataSource پیکربندی شده را ارائه می دهد که به شما امکان می دهد به راحتی از مزیت Cloud SQL با حداقل تغییرات در کد خود استفاده کنید. این آزمایشگاه کد از کد منبع Spring Petclinic استفاده می کند.

پیش نیازها

  • آشنایی با زبان و ابزارهای برنامه نویسی جاوا
  • آشنایی با ویرایشگرهای متن استاندارد لینوکس مانند Vim، Emacs و nano

کاری که خواهی کرد

  • از Cloud SQL در برنامه Spring Boot خود استفاده کنید.

آنچه شما نیاز دارید

2. راه اندازی و الزامات

تنظیم محیط خود به خود

  1. به کنسول Cloud وارد شوید و یک پروژه جدید ایجاد کنید یا از پروژه موجود استفاده مجدد کنید. (اگر قبلاً یک حساب Gmail یا G Suite ندارید، باید یک حساب ایجاد کنید .)

شناسه پروژه را به خاطر بسپارید، یک نام منحصر به فرد در تمام پروژه های Google Cloud (نام بالا قبلاً گرفته شده است و برای شما کار نخواهد کرد، متأسفیم!). بعداً در این آزمایشگاه کد به عنوان PROJECT_ID خواهد شد.

  1. در مرحله بعد، برای استفاده از منابع Google Cloud، باید صورت‌حساب را در کنسول Cloud فعال کنید.

گذراندن از طریق این نرم افزار کد نباید بیش از چند دلار هزینه داشته باشد، اما اگر تصمیم به استفاده از منابع بیشتری داشته باشید یا آنها را در حال اجرا رها کنید، ممکن است بیشتر باشد.

کاربران جدید Google Cloud واجد شرایط استفاده آزمایشی رایگان 300 دلاری هستند.

Cloud Shell را فعال کنید

  1. از Cloud Console، روی Activate Cloud Shell کلیک کنید .

اگر قبلاً Cloud Shell را راه‌اندازی نکرده‌اید، با یک صفحه میانی (در زیر تاشو) روبرو می‌شوید که آن را توصیف می‌کند. اگر اینطور است، روی Continue کلیک کنید (و دیگر آن را نخواهید دید). این صفحه نمایش یکبار مصرف به این صورت است:

تهیه و اتصال به Cloud Shell فقط باید چند لحظه طول بکشد.

این ماشین مجازی با تمام ابزارهای توسعه که شما نیاز دارید بارگذاری شده است. این یک فهرست اصلی 5 گیگابایتی دائمی ارائه می‌کند و در Google Cloud اجرا می‌شود، و عملکرد شبکه و احراز هویت را بسیار افزایش می‌دهد. بسیاری از کارهای شما، اگر نه همه، در این لبه کد را می توان به سادگی با یک مرورگر یا Chromebook انجام داد.

پس از اتصال به Cloud Shell، باید ببینید که قبلاً احراز هویت شده اید و پروژه قبلاً روی ID پروژه شما تنظیم شده است.

  1. برای تایید احراز هویت، دستور زیر را در 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 تنظیم کنید

  1. پس از راه اندازی Cloud Shell، می توانید از خط فرمان برای ایجاد یک نمونه جدید Cloud SQL استفاده کنید:
$ gcloud sql instances create my-instance

پس از تکمیل این عملیات، نمونه شما آماده استفاده خواهد بود.

  1. اکنون یک پایگاه داده ایجاد کنید که از آن برای برنامه Petclinic استفاده می کنید:
$ gcloud sql databases create petclinic --instance my-instance

همچنین می توانید از طریق Cloud Console به نمونه دسترسی داشته باشید و آن را پیکربندی کنید.

  1. با اجرای دستور زیر، نام اتصال نمونه را با فرمت project-id:zone-id:instance-id دریافت کنید. بعداً از آن در پیکربندی برنامه Spring Boot خود استفاده خواهید کرد.
$ gcloud sql instances describe my-instance |grep connectionName

4. برنامه Petclinic را کلون کنید و به صورت محلی آزمایش کنید

  1. اکنون برنامه Petclinic را به صورت محلی کلون کرده و آزمایش خواهید کرد.
$ git clone https://github.com/spring-projects/spring-petclinic
$ cd spring-petclinic
$ ./mvnw spring-boot:run
  1. پیش نمایش وب را کلیک کنید در Cloud Shell، سپس Preview در پورت 8080 را انتخاب کنید.

شما باید صفحه اصلی Petclinic را همانطور که در اینجا در مرورگر خود نشان داده شده است ببینید:

  1. بازی کنید و داده ها را اضافه کنید. این برنامه از یک پایگاه داده HyperSQL در حافظه استفاده می کند. اکنون از HyperSQL به استفاده از Cloud SQL به عنوان پایگاه داده خود سوئیچ خواهید کرد.

5. از Cloud SQL در Petclinic استفاده کنید

فایل Maven pom.xml را به روز کنید

فایل pom.xml را همانطور که در اینجا نشان داده شده است به روز کنید. شروع کننده یک شیء DataSource پیکربندی شده را برای اتصال به پایگاه داده Cloud SQL شما فراهم می کند. برای ویرایش فایل می توانید از Vim، nano، یا 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>

به روز رسانی application-mysql.properties

  1. محتوای src/main/resources/application-mysql.properties را جایگزین کنید با خواص زیر شما باید نام اتصال نمونه را از مرحله قبل تنظیم کنید.

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. در نهایت، با افزودن mysql به ویژگی application.properties' spring.profiles.active ، یک Cloud SQL را برای نمایه MySQL در برنامه Spring Boot فعال کنید:

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. برنامه را در Cloud Shell اجرا کنید

  1. می توانید برنامه Spring Boot را به طور معمول با افزونه Spring Boot راه اندازی کنید:
$ ./mvnw -DskipTests spring-boot:run
  1. پس از شروع برنامه، روی Web Preview کلیک کنید در نوار ابزار Cloud Shell، سپس Preview در پورت 8080 را انتخاب کنید.

همانطور که در اینجا در مرورگر خود نشان داده شده است، باید صفحه اصلی Spring Petclinic را دوباره ببینید:

  1. یک ورودی صاحب حیوان خانگی اضافه کنید.

اختیاری: بررسی کنید که Cloud SQL داده ها را حفظ کرده است

همانطور که در اینجا نشان داده شده است، می توانید تأیید کنید که داده هایی که وارد کرده اید در Cloud SQL باقی مانده است. هنگامی که از شما خواسته شد رمز عبور را وارد کنید (بازگشت در مکینتاش).

$ 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. تبریک می گویم

شما یاد گرفتید که چگونه در برنامه Spring Boot خود به Cloud SQL متصل شوید!

بیشتر بدانید