1. আপনি শুরু করার আগে
ক্লাউড এসকিউএল হল একটি সম্পূর্ণরূপে পরিচালিত ডাটাবেস পরিষেবা যা Google ক্লাউডে আপনার রিলেশনাল ডেটাবেস সেট আপ, রক্ষণাবেক্ষণ, পরিচালনা এবং পরিচালনা করা সহজ করে তোলে। আপনি MySQL এর জন্য Cloud SQL বা PostgreSQL এর জন্য ক্লাউড SQL এর সাথে ক্লাউড এসকিউএল ব্যবহার করতে পারেন।
এই কোডল্যাবে, আপনি শিখবেন কিভাবে MySQL ইন্সট্যান্সের জন্য একটি ক্লাউড এসকিউএল সেট আপ করতে হয় এবং তারপর ক্লাউড এসকিউএল ইনস্ট্যান্সকে ব্যাকএন্ড স্টোরেজ হিসেবে ব্যবহার করতে একটি স্প্রিং বুট অ্যাপ আপডেট করতে হয়। Google ক্লাউড SQL-এর জন্য স্প্রিং বুট স্টার্টার একটি স্বয়ংক্রিয় কনফিগার করা ডেটাসোর্স প্রদান করে, যা আপনাকে আপনার কোডে ন্যূনতম পরিবর্তনের সাথে সহজেই ক্লাউড SQL এর সুবিধা নিতে দেয়৷ এই কোডল্যাব স্প্রিং পেটক্লিনিক সোর্স কোড ব্যবহার করে।
পূর্বশর্ত
- জাভা প্রোগ্রামিং ভাষা এবং সরঞ্জামগুলির সাথে পরিচিতি
- স্ট্যান্ডার্ড লিনাক্স টেক্সট এডিটর, যেমন Vim, Emacs এবং ন্যানো সম্পর্কে জ্ঞান
আপনি কি করবেন
- আপনার স্প্রিং বুট অ্যাপে ক্লাউড এসকিউএল ব্যবহার করুন।
আপনি কি প্রয়োজন হবে
- একটি Google ক্লাউড প্রকল্প
- একটি ব্রাউজার, যেমন গুগল ক্রোম বা ফায়ারফক্স
2. সেটআপ এবং প্রয়োজনীয়তা
স্ব-গতিসম্পন্ন পরিবেশ সেটআপ
- Google ক্লাউড কনসোলে সাইন-ইন করুন এবং একটি নতুন প্রকল্প তৈরি করুন বা বিদ্যমান একটি পুনরায় ব্যবহার করুন৷ আপনার যদি ইতিমধ্যেই একটি Gmail বা Google Workspace অ্যাকাউন্ট না থাকে, তাহলে আপনাকে অবশ্যই একটি তৈরি করতে হবে।
- প্রকল্পের নাম এই প্রকল্পের অংশগ্রহণকারীদের জন্য প্রদর্শনের নাম। এটি একটি অক্ষর স্ট্রিং যা Google API দ্বারা ব্যবহৃত হয় না। আপনি সবসময় এটি আপডেট করতে পারেন.
- প্রোজেক্ট আইডি সমস্ত Google ক্লাউড প্রোজেক্ট জুড়ে অনন্য এবং অপরিবর্তনীয় (সেট করার পরে পরিবর্তন করা যাবে না)। ক্লাউড কনসোল স্বয়ংক্রিয়ভাবে একটি অনন্য স্ট্রিং তৈরি করে; সাধারণত আপনি এটা কি যত্ন না. বেশিরভাগ কোডল্যাবে, আপনাকে আপনার প্রকল্প আইডি উল্লেখ করতে হবে (সাধারণত
PROJECT_ID
হিসাবে চিহ্নিত)। আপনি যদি জেনারেট করা আইডি পছন্দ না করেন, তাহলে আপনি অন্য একটি এলোমেলো আইডি তৈরি করতে পারেন। বিকল্পভাবে, আপনি নিজের চেষ্টা করতে পারেন, এবং এটি উপলব্ধ কিনা দেখতে পারেন। এই ধাপের পরে এটি পরিবর্তন করা যাবে না এবং প্রকল্পের সময়কালের জন্য থাকে। - আপনার তথ্যের জন্য, একটি তৃতীয় মান আছে, একটি প্রকল্প নম্বর , যা কিছু API ব্যবহার করে। ডকুমেন্টেশনে এই তিনটি মান সম্পর্কে আরও জানুন।
- এরপরে, ক্লাউড রিসোর্স/এপিআই ব্যবহার করতে আপনাকে ক্লাউড কনসোলে বিলিং সক্ষম করতে হবে। এই কোডল্যাবের মাধ্যমে চালানোর জন্য খুব বেশি খরচ হবে না, যদি কিছু হয়। এই টিউটোরিয়ালের বাইরে বিলিং এড়াতে সংস্থানগুলি বন্ধ করতে, আপনি আপনার তৈরি করা সংস্থানগুলি মুছতে বা প্রকল্প মুছতে পারেন। নতুন Google ক্লাউড ব্যবহারকারীরা $300 USD বিনামূল্যের ট্রায়াল প্রোগ্রামের জন্য যোগ্য৷
ক্লাউড শেল সক্রিয় করুন
- ক্লাউড কনসোল থেকে, ক্লাউড শেল সক্রিয় করুন ক্লিক করুন
.
যদি এটি আপনার প্রথমবার ক্লাউড শেল শুরু হয়, তাহলে এটি কী তা বর্ণনা করে আপনাকে একটি মধ্যবর্তী স্ক্রীন উপস্থাপন করা হবে। যদি আপনি একটি মধ্যবর্তী স্ক্রীনের সাথে উপস্থাপিত হন, তবে চালিয়ে যান ক্লিক করুন।
ক্লাউড শেলের সাথে সংযোগ করতে এবং সংযোগ করতে এটির মাত্র কয়েক মুহূর্ত লাগবে৷
এই ভার্চুয়াল মেশিনটি প্রয়োজনীয় সমস্ত বিকাশের সরঞ্জাম দিয়ে লোড করা হয়েছে। এটি একটি ক্রমাগত 5 GB হোম ডিরেক্টরি অফার করে এবং Google ক্লাউডে চলে, যা নেটওয়ার্ক কর্মক্ষমতা এবং প্রমাণীকরণকে ব্যাপকভাবে উন্নত করে। এই কোডল্যাবে আপনার অনেক কাজ, যদি সব না হয়, ব্রাউজার দিয়ে করা যেতে পারে।
একবার ক্লাউড শেলের সাথে সংযুক্ত হয়ে গেলে, আপনি দেখতে পাবেন যে আপনি প্রমাণীকৃত হয়েছেন এবং প্রকল্পটি আপনার প্রকল্প আইডিতে সেট করা আছে।
- আপনি প্রমাণীকৃত কিনা তা নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান:
gcloud auth list
কমান্ড আউটপুট
Credentialed Accounts ACTIVE ACCOUNT * <my_account>@<my_domain.com> To set the active account, run: $ gcloud config set account `ACCOUNT`
- gcloud কমান্ড আপনার প্রকল্প সম্পর্কে জানে তা নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান:
gcloud config list project
কমান্ড আউটপুট
[core] project = <PROJECT_ID>
যদি এটি না হয়, আপনি এই কমান্ড দিয়ে এটি সেট করতে পারেন:
gcloud config set project <PROJECT_ID>
কমান্ড আউটপুট
Updated property [core/project].
3. MySQL উদাহরণের জন্য একটি ক্লাউড SQL সেট আপ করুন৷
- ক্লাউড শেল চালু হওয়ার পরে, আপনি একটি নতুন ক্লাউড এসকিউএল উদাহরণ তৈরি করতে কমান্ড লাইন ব্যবহার করতে পারেন:
$ gcloud sql instances create my-instance
একবার এই অপারেশনটি সম্পূর্ণ হলে, আপনার উদাহরণ ব্যবহার করার জন্য প্রস্তুত হবে।
- এখন একটি ডাটাবেস তৈরি করুন যা আপনি পেটক্লিনিক অ্যাপের জন্য ব্যবহার করবেন:
$ gcloud sql databases create petclinic --instance my-instance
এছাড়াও আপনি ক্লাউড কনসোলের মাধ্যমে উদাহরণটি অ্যাক্সেস এবং কনফিগার করতে পারেন।
-
project-id:zone-id:instance-id
ফরম্যাটে ইনস্ট্যান্স কানেকশনের নাম নিন নিম্নলিখিত কমান্ডটি চালিয়ে। আপনি পরে আপনার স্প্রিং বুট অ্যাপ কনফিগার করার জন্য এটি ব্যবহার করবেন।
$ 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
- ওয়েব পূর্বরূপ ক্লিক করুন
ক্লাউড শেল-এ, তারপর পোর্ট 8080-এ পূর্বরূপ নির্বাচন করুন।
আপনার ব্রাউজারে এখানে দেখানো পেটক্লিনিক হোমপেজটি দেখতে হবে:
- চারপাশে খেলুন এবং ডেটা যোগ করুন। অ্যাপটি একটি ইন-মেমরি হাইপারএসকিউএল ডাটাবেস ব্যবহার করে। আপনি এখন হাইপারএসকিউএল থেকে আপনার ডাটাবেস হিসাবে ক্লাউড এসকিউএল ব্যবহার করতে পারবেন।
5. পেটক্লিনিকে ক্লাউড এসকিউএল ব্যবহার করুন
Maven pom.xml ফাইল আপডেট করুন
এখানে দেখানো হিসাবে pom.xml
ফাইল আপডেট করুন। স্টার্টার আপনার ক্লাউড SQL ডাটাবেসের সাথে সংযোগ করার জন্য একটি স্বয়ংক্রিয় কনফিগার করা DataSource
অবজেক্ট প্রদান করে। আপনি ফাইল সম্পাদনা করতে Vim, ন্যানো, বা 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>
অ্যাপ্লিকেশন-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
- অবশেষে,
application.properties
'spring.profiles.active
সম্পত্তিতেmysql
যোগ করে স্প্রিং বুট অ্যাপে MySQL প্রোফাইলের জন্য একটি ক্লাউড 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. ক্লাউড শেলে অ্যাপটি চালান
- আপনি স্প্রিং বুট প্লাগইন দিয়ে সাধারণত স্প্রিং বুট অ্যাপটি শুরু করতে পারেন:
$ ./mvnw -DskipTests spring-boot:run
- অ্যাপটি চালু হয়ে গেলে, ওয়েব প্রিভিউতে ক্লিক করুন
ক্লাউড শেল টুলবারে, তারপর পোর্ট 8080-এ পূর্বরূপ নির্বাচন করুন।
আপনার ব্রাউজারে এখানে দেখানো হিসাবে আপনি আবার স্প্রিং পেটক্লিনিক হোমপেজ দেখতে পাবেন:
- একটি পোষা মালিক এন্ট্রি যোগ করুন.
ঐচ্ছিক: যাচাই করুন যে ক্লাউড 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;
ঐচ্ছিক: আপনার ক্লাউড SQL উদাহরণ মুছুন
একবার আপনি আপনার অ্যাপ বন্ধ করে দিলে, আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করে ক্লাউড এসকিউএল ইন্সট্যান্স মুছে ফেলতে পারেন:
$ gcloud sql instances delete my-instance
7. অভিনন্দন
আপনি আপনার স্প্রিং বুট অ্যাপে ক্লাউড এসকিউএল-এর সাথে কীভাবে সংযোগ করবেন তা শিখেছেন!