इस कोडलैब (कोड बनाना सीखने के लिए ट्यूटोरियल) के बारे में जानकारी
1. शुरू करने से पहले
Cloud SQL पूरी तरह से मैनेज की गई डेटाबेस सेवा है. इसकी मदद से, Google Cloud पर अपने मिलते-जुलते डेटाबेस को आसानी से सेट अप किया जा सकता है. साथ ही, उसे बनाए रखने, मैनेज करने, और सही तरीके से चलाने में भी मदद मिलती है. आप 'MySQL के लिए Cloud SQL' के साथ Cloud SQL या PostgreSQL के लिए Cloud SQL का इस्तेमाल कर सकते हैं.
इस कोडलैब में, आप 'MySQL के लिए Cloud SQL' इंस्टेंस सेट अप करने का तरीका जानेंगे. इसके बाद, Cloud SQL इंस्टेंस को बैकएंड स्टोरेज के तौर पर इस्तेमाल करने के लिए, Spring बूट ऐप्लिकेशन को अपडेट करेंगे. Google Cloud SQL के लिए स्प्रिंग बूट स्टार्टर अपने-आप कॉन्फ़िगर किया गया डेटास्रोत देता है, जिससे आप अपने कोड में थोड़े-बहुत बदलाव करके भी क्लाउड SQL का आसानी से फ़ायदा ले सकते हैं. यह कोडलैब स्प्रिंग पेक्लिनिक सोर्स कोड का इस्तेमाल करता है.
ज़रूरी शर्तें
- Java प्रोग्रामिंग लैंग्वेज और टूल के बारे में जानें
- Vim, Emacs, और नैनो जैसे मानक Linux टेक्स्ट एडिटर की जानकारी
आप क्या कर सकते हैं
- अपने Spring बूट ऐप्लिकेशन में Cloud SQL का इस्तेमाल करें.
आपको क्या चाहिए
- Google Cloud का कोई प्रोजेक्ट
- ब्राउज़र, जैसे कि Google Chrome या Firefox
2. सेट अप और ज़रूरी शर्तें
अपनी सुविधा के हिसाब से एनवायरमेंट सेट अप करना
- Cloud Console में साइन इन करें और नया प्रोजेक्ट बनाएं या मौजूदा प्रोजेक्ट का फिर से इस्तेमाल करें. (अगर आपके पास पहले से ही Gmail या G Suite खाता नहीं है, तो आपको एक खाता बनाना होगा.)
प्रोजेक्ट आईडी याद रखें, सभी Google क्लाउड प्रोजेक्ट में दिया गया नाम (ऊपर दिया गया नाम पहले ही लिया जा चुका है और यह आपके लिए काम नहीं करेगा!). इसे बाद में इस कोडलैब (कोड बनाना सीखना) में PROJECT_ID
के तौर पर बताया जाएगा.
- इसके बाद, आपको Google Cloud के संसाधनों का इस्तेमाल करने के लिए, Cloud Console में बिलिंग को चालू करना होगा.
इस कोडलैब के जवाब में आपको कुछ डॉलर से ज़्यादा खर्च नहीं करना चाहिए. हालांकि, अगर आप और संसाधनों का इस्तेमाल करना चाहते हैं या उन्हें छोड़ देना चाहते हैं, तो यह तरीका ज़्यादा हो सकता है.
Google Cloud के नए उपयोगकर्ता, 300 डॉलर का मुफ़्त ट्रायल पा सकते हैं.
Cloud Shell चालू करें
- Cloud Console में, Cloud Shell चालू करें
पर क्लिक करें.
अगर आपने ' को पहले कभी भी Cloud Shell शुरू नहीं किया है, तो आपको # स्क्रीन के बीच में (पेज के नीचे) जानकारी दी जाएगी कि यह क्या है. अगर ऐसा है तो जारी रखें पर क्लिक करें (और आप इसे कभी भी दोबारा नहीं देख पाएंगे). यहां बताया गया है कि एक बार की स्क्रीन कैसी दिखती है:
प्रावधान करने और Cloud Shell से कनेक्ट होने में कुछ ही समय लगेगा.
इस वर्चुअल मशीन में डेवलपमेंट से जुड़े सभी टूल हैं#39. इसमें 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. 'MySQL के लिए Cloud SQL' इंस्टेंस सेट अप करना
- 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 बूट ऐप्लिकेशन को कॉन्फ़िगर करने में करेंगे.
$ 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 में वेब की झलक
पर क्लिक करें , फिर पोर्ट 8080 पर झलक देखें को चुनें.
जैसा कि यहां आपके ब्राउज़र में दिखाया गया है, आपको Payclinic का होम पेज देखना चाहिए:
- वीडियो चलाएं और डेटा जोड़ें. यह ऐप्लिकेशन, मेमोरी में HyperSQL डेटाबेस का इस्तेमाल करता है. अब आप अपने डेटाबेस के तौर पर Cloud SQL का इस्तेमाल करने के लिए HyperSQL से स्विच करेंगे.
5. Petclinic में Cloud SQL का इस्तेमाल करें
Maven pom.xml फ़ाइल को अपडेट करें
pom.xml
फ़ाइल को यहां दिखाए गए तरीके से अपडेट करें. स्टार्टर आपके Cloud SQL डेटाबेस से कनेक्ट करने के लिए, अपने-आप कॉन्फ़िगर किया गया DataSource
ऑब्जेक्ट देता है. फ़ाइल में बदलाव करने के लिए, आप 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 अपडेट करना
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
- आखिर में,
application.properties' spring.profiles.active
प्रॉपर्टी मेंmysql
जोड़कर, Spring बूट ऐप्लिकेशन में 'MySQL के लिए Cloud SQL' प्रोफ़ाइल चालू करें:
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 बूट प्लग इन के साथ, आम तौर पर Spring बूट ऐप्लिकेशन शुरू कर सकते हैं:
$ ./mvnw -DskipTests spring-boot:run
- ऐप्लिकेशन शुरू होने के बाद, Cloud Shell टूलबार में वेब की झलक
पर क्लिक करें. इसके बाद, पोर्ट 8080 पर झलक देखें चुनें.
आपको फिर से स्प्रिंग पेटक्लिनिक होम पेज दिखना चाहिए, जैसा कि यहां आपके ब्राउज़र में दिखाया गया है:
- पालतू जानवर की प्रॉपर्टी के मालिक की एंट्री जोड़ें.
ज़रूरी नहीं: पुष्टि करना कि 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