1. לפני שמתחילים
Cloud SQL הוא שירות מנוהל של מסד נתונים, שבעזרתו אפשר ליצור, לתחזק ולנהל מסדי נתונים רלציוניים ב-Google Cloud. אפשר להשתמש ב-Cloud SQL עם Cloud SQL ל-MySQL או עם Cloud SQL ל-PostgreSQL.
ב-Codelab הזה תלמדו איך להגדיר מופע של Cloud SQL ל-MySQL, ואז לעדכן אפליקציית Spring Boot כדי להשתמש במופע Cloud SQL כאחסון בק-אנד. ה-Spring Boot Starter for Google Cloud SQL מספק DataSource שהוגדר אוטומטית, ומאפשר לכם ליהנות בקלות מ-Cloud SQL עם שינויים מינימליים בקוד. ב-codelab הזה נעשה שימוש בקוד המקור של Spring Petclinic.
דרישות מוקדמות
- היכרות עם שפת התכנות Java ועם כלים
- ידע בכלי עריכת טקסט סטנדרטיים של Linux, כמו Vim, Emacs ו-nano
מה תעשו
- שימוש ב-Cloud SQL באפליקציית Spring Boot.
מה תצטרכו
- פרויקט ב-Google Cloud
- דפדפן, כמו Google Chrome או Firefox
2. הגדרה ודרישות
הגדרת סביבה בקצב אישי
- נכנסים ל-מסוף Google Cloud ויוצרים פרויקט חדש או משתמשים בפרויקט קיים. אם עדיין אין לכם חשבון Gmail או Google Workspace, אתם צריכים ליצור חשבון.



- שם הפרויקט הוא השם המוצג של הפרויקט הזה למשתתפים. זו מחרוזת תווים שלא נמצאת בשימוש ב-Google APIs. תמיד אפשר לעדכן את המיקום.
- מזהה הפרויקט הוא ייחודי לכל הפרויקטים ב-Google Cloud, והוא קבוע (אי אפשר לשנות אותו אחרי שהוא מוגדר). מסוף Cloud יוצר באופן אוטומטי מחרוזת ייחודית, ובדרך כלל לא צריך לדעת מה היא. ברוב ה-Codelabs, תצטרכו להפנות למזהה הפרויקט (בדרך כלל מסומן כ-
PROJECT_ID). אם אתם לא אוהבים את המזהה שנוצר, אתם יכולים ליצור מזהה אקראי אחר. אפשר גם לנסות שם משתמש משלכם ולבדוק אם הוא זמין. אי אפשר לשנות את ההגדרה הזו אחרי השלב הזה, והיא תישאר לאורך הפרויקט. - לידיעתכם, יש ערך שלישי, מספר פרויקט, שחלק מממשקי ה-API משתמשים בו. במאמרי העזרה מפורט מידע נוסף על שלושת הערכים האלה.
- בשלב הבא, תצטרכו להפעיל את החיוב במסוף Cloud כדי להשתמש במשאבי Cloud או בממשקי API של Cloud. השלמת ה-codelab הזה לא תעלה לכם הרבה, אם בכלל. כדי להשבית את המשאבים ולמנוע חיובים נוספים אחרי שתסיימו את המדריך הזה, תוכלו למחוק את המשאבים שיצרתם או למחוק את הפרויקט. משתמשים חדשים ב-Google Cloud זכאים לתוכנית תקופת ניסיון בחינם בשווי 300$.
הפעלת Cloud Shell
- ב-Cloud Console, לוחצים על Activate Cloud Shell
.

אם זו הפעם הראשונה שאתם מפעילים את Cloud Shell, יוצג לכם מסך ביניים עם תיאור של השירות. אם הוצג לכם מסך ביניים, לחצו על המשך.

הקצאת המשאבים והחיבור ל-Cloud Shell נמשכים רק כמה רגעים.

המכונה הווירטואלית הזו כוללת את כל הכלים הדרושים למפתחים. יש בה ספריית בית בנפח מתמיד של 5GB והיא פועלת ב-Google Cloud, מה שמשפר מאוד את הביצועים והאימות ברשת. אפשר לבצע את רוב העבודה ב-codelab הזה, אם לא את כולה, באמצעות דפדפן.
אחרי שמתחברים ל-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`
- מריצים את הפקודה הבאה ב-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
- מוודאים שגרסת Java הנכונה מוגדרת ומריצים את אפליקציית Petclinic באופן מקומי.
$ export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64/ $ ./mvnw spring-boot:run
- לוחצים על תצוגה מקדימה באינטרנט
ב-Cloud Shell ובוחרים באפשרות תצוגה מקדימה ביציאה 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למאפייןapplication.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. הפעלת האפליקציה ב-Cloud Shell
- אפשר להפעיל את אפליקציית Spring Boot כרגיל באמצעות התוסף Spring Boot:
$ ./mvnw -DskipTests spring-boot:run
- אחרי שהאפליקציה מופעלת, לוחצים על תצוגה מקדימה באינטרנט
בסרגל הכלים של Cloud Shell ובוחרים באפשרות תצוגה מקדימה ביציאה 8080.

בדפדפן אמור להופיע שוב דף הבית של Spring Petclinic, כמו שמוצג כאן:

- מוסיפים רשומה של בעלי חיות מחמד.
אופציונלי: מוודאים שהנתונים נשמרו ב-Cloud SQL
כאן אפשר לוודא שהנתונים שהזנתם נשמרו ב-Cloud SQL. כשמוצגת בקשה להזין סיסמה, מקישים על Enter.
$ 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.