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. راه اندازی و الزامات
تنظیم محیط خود به خود
- به Google Cloud Console وارد شوید و یک پروژه جدید ایجاد کنید یا از یک موجود استفاده مجدد کنید. اگر قبلاً یک حساب Gmail یا Google Workspace ندارید، باید یک حساب ایجاد کنید .
- نام پروژه نام نمایشی برای شرکت کنندگان این پروژه است. این یک رشته کاراکتری است که توسط API های Google استفاده نمی شود. همیشه می توانید آن را به روز کنید.
- شناسه پروژه در تمام پروژههای Google Cloud منحصربهفرد است و تغییرناپذیر است (پس از تنظیم نمیتوان آن را تغییر داد). Cloud Console به طور خودکار یک رشته منحصر به فرد تولید می کند. معمولاً برای شما مهم نیست که چیست. در اکثر کدها، باید شناسه پروژه خود را ارجاع دهید (معمولاً با نام
PROJECT_ID
شناخته می شود). اگر شناسه تولید شده را دوست ندارید، ممکن است یک شناسه تصادفی دیگر ایجاد کنید. از طرف دیگر، میتوانید خودتان را امتحان کنید، و ببینید آیا در دسترس است یا خیر. پس از این مرحله نمی توان آن را تغییر داد و در طول مدت پروژه باقی می ماند. - برای اطلاع شما، یک مقدار سوم وجود دارد، یک شماره پروژه ، که برخی از API ها از آن استفاده می کنند. در مورد هر سه این مقادیر در مستندات بیشتر بیاموزید.
- در مرحله بعد، برای استفاده از منابع Cloud/APIها باید صورتحساب را در کنسول Cloud فعال کنید . اجرا کردن از طریق این کد لبه هزینه زیادی نخواهد داشت. برای خاموش کردن منابع برای جلوگیری از تحمیل صورتحساب فراتر از این آموزش، میتوانید منابعی را که ایجاد کردهاید حذف کنید یا پروژه را حذف کنید. کاربران جدید Google Cloud واجد شرایط برنامه آزمایشی رایگان 300 دلاری هستند.
Cloud Shell را فعال کنید
- از Cloud Console، روی Activate Cloud Shell کلیک کنید .
اگر این اولین باری است که Cloud Shell را راه اندازی می کنید، با یک صفحه میانی روبرو می شوید که آن را توصیف می کند. اگر با یک صفحه میانی مواجه شدید، روی Continue کلیک کنید.
تهیه و اتصال به Cloud Shell فقط باید چند لحظه طول بکشد.
این ماشین مجازی با تمام ابزارهای توسعه مورد نیاز بارگذاری شده است. این یک فهرست اصلی 5 گیگابایتی دائمی ارائه میکند و در Google Cloud اجرا میشود، که عملکرد و احراز هویت شبکه را بسیار افزایش میدهد. بسیاری از کارهای شما، اگر نه همه، در این کد لبه با مرورگر قابل انجام است.
پس از اتصال به Cloud Shell، باید ببینید که احراز هویت شده اید و پروژه به ID پروژه شما تنظیم شده است.
- برای تایید احراز هویت، دستور زیر را در 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`
- دستور زیر را در Cloud Shell اجرا کنید تا تأیید کنید که دستور gcloud از پروژه شما اطلاع دارد:
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
همچنین میتوانید از طریق Cloud Console به نمونه دسترسی داشته باشید و آن را پیکربندی کنید.
- با اجرای دستور زیر، نام اتصال نمونه را با فرمت
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
- مطمئن شوید که نسخه صحیح جاوا تنظیم شده است و برنامه Petclinic را به صورت محلی اجرا کنید.
$ export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64/ $ ./mvnw spring-boot:run
- روی Web Preview کلیک کنید در Cloud Shell، سپس Preview در پورت 8080 را انتخاب کنید.
شما باید صفحه اصلی Petclinic را همانطور که در اینجا در مرورگر خود نشان داده شده است ببینید:
- بازی کنید و داده ها را اضافه کنید. این برنامه از یک پایگاه داده 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>com.google.cloud</groupId>
<artifactId>spring-cloud-gcp-dependencies</artifactId>
<version>4.1.4</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
...
<!-- Add CloudSQL Starter for MySQL -->
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>spring-cloud-gcp-starter-sql-mysql</artifactId>
</dependency>
...
</dependencies>
</project>
به روز رسانی application-mysql.properties
- محتوای
src/main/resources/application-mysql.properties
با ویژگی های زیر جایگزین کنید . شما باید نام اتصال نمونه را از مرحله قبل تنظیم کنید.
src/main/resources/application-mysql.properties
database=mysql
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.5+.
spring.sql.init.mode=always
- در نهایت، یک Cloud SQL را برای نمایه MySQL در برنامه Spring Boot با افزودن
mysql
به ویژگیspring.profiles.active
application.properties
فعال کنید:
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 اجرا کنید
- می توانید برنامه Spring Boot را به طور معمول با افزونه Spring Boot راه اندازی کنید:
$ ./mvnw -DskipTests spring-boot:run
- پس از شروع برنامه، روی Web Preview کلیک کنید در نوار ابزار Cloud Shell، سپس Preview در پورت 8080 را انتخاب کنید.
همانطور که در اینجا در مرورگر خود نشان داده شده است، باید صفحه اصلی Spring Petclinic را دوباره ببینید:
- یک ورودی صاحب حیوان خانگی اضافه کنید.
اختیاری: بررسی کنید که 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. تبریک می گویم
شما نحوه اتصال به Cloud SQL را در برنامه Spring Boot خود یاد گرفتید!