ক্লাউড এসকিউএল-এ একটি স্প্রিং বুট অ্যাপ সংযুক্ত করুন

১. শুরু করার আগে

ক্লাউড এসকিউএল একটি সম্পূর্ণরূপে পরিচালিত ডাটাবেস পরিষেবা যা গুগল ক্লাউডে আপনার রিলেশনাল ডাটাবেস সেট আপ, রক্ষণাবেক্ষণ, পরিচালনা এবং পরিচালনা করা সহজ করে তোলে। আপনি ক্লাউড এসকিউএল মাইএসকিউএলের জন্য ক্লাউড এসকিউএল অথবা পোস্টগ্রেএসকিউএলের জন্য ক্লাউড এসকিউএল ব্যবহার করতে পারেন।

এই কোডল্যাবে, আপনি শিখবেন কিভাবে MySQL ইনস্ট্যান্সের জন্য একটি ক্লাউড SQL সেট আপ করবেন এবং তারপর ক্লাউড SQL ইনস্ট্যান্সকে ব্যাকএন্ড স্টোরেজ হিসেবে ব্যবহার করার জন্য একটি স্প্রিং বুট অ্যাপ আপডেট করবেন। গুগল ক্লাউড SQL এর জন্য স্প্রিং বুট স্টার্টার একটি স্বয়ংক্রিয়ভাবে কনফিগার করা ডেটাসোর্স প্রদান করে, যা আপনাকে আপনার কোডে ন্যূনতম পরিবর্তন সহ সহজেই ক্লাউড SQL এর সুবিধা নিতে দেয়। এই কোডল্যাবটি স্প্রিং পেটক্লিনিক সোর্স কোড ব্যবহার করে।

পূর্বশর্ত

  • জাভা প্রোগ্রামিং ভাষা এবং সরঞ্জামগুলির সাথে পরিচিতি
  • ভিম, ইম্যাকস এবং ন্যানোর মতো স্ট্যান্ডার্ড লিনাক্স টেক্সট এডিটর সম্পর্কে জ্ঞান থাকা।

তুমি কি করবে

  • আপনার স্প্রিং বুট অ্যাপে ক্লাউড এসকিউএল ব্যবহার করুন।

তোমার যা লাগবে

2. সেটআপ এবং প্রয়োজনীয়তা

স্ব-গতিসম্পন্ন পরিবেশ সেটআপ

  1. গুগল ক্লাউড কনসোলে সাইন-ইন করুন এবং একটি নতুন প্রকল্প তৈরি করুন অথবা বিদ্যমান একটি পুনরায় ব্যবহার করুন। যদি আপনার ইতিমধ্যেই একটি জিমেইল বা গুগল ওয়ার্কস্পেস অ্যাকাউন্ট না থাকে, তাহলে আপনাকে অবশ্যই একটি তৈরি করতে হবে।

b35bf95b8bf3d5d8.png সম্পর্কে

a99b7ace416376c4.png সম্পর্কে

bd84a6d3004737c5.png সম্পর্কে

  • এই প্রকল্পের অংশগ্রহণকারীদের জন্য প্রজেক্টের নামটি প্রদর্শন করা হবে। এটি একটি অক্ষর স্ট্রিং যা Google API গুলি ব্যবহার করে না। আপনি যেকোনো সময় এটি আপডেট করতে পারেন।
  • সমস্ত Google ক্লাউড প্রোজেক্টে প্রোজেক্ট আইডি অনন্য এবং অপরিবর্তনীয় (সেট করার পরে এটি পরিবর্তন করা যাবে না)। ক্লাউড কনসোল স্বয়ংক্রিয়ভাবে একটি অনন্য স্ট্রিং তৈরি করে; সাধারণত আপনি এটি কী তা নিয়ে চিন্তা করেন না। বেশিরভাগ কোডল্যাবে, আপনাকে আপনার প্রোজেক্ট আইডি (সাধারণত PROJECT_ID হিসাবে চিহ্নিত) উল্লেখ করতে হবে। যদি আপনি জেনারেট করা আইডি পছন্দ না করেন, তাহলে আপনি অন্য একটি র্যান্ডম তৈরি করতে পারেন। বিকল্পভাবে, আপনি নিজের চেষ্টা করে দেখতে পারেন, এবং এটি উপলব্ধ কিনা তা দেখতে পারেন। এই ধাপের পরে এটি পরিবর্তন করা যাবে না এবং প্রকল্পের সময়কালের জন্য থাকবে।
  • আপনার তথ্যের জন্য, তৃতীয় একটি মান আছে, একটি Project Number , যা কিছু API ব্যবহার করে। ডকুমেন্টেশনে এই তিনটি মান সম্পর্কে আরও জানুন।
  1. এরপর, ক্লাউড রিসোর্স/API ব্যবহার করার জন্য আপনাকে ক্লাউড কনসোলে বিলিং সক্ষম করতে হবে। এই কোডল্যাবটি চালানোর জন্য খুব বেশি খরচ হবে না, এমনকি কিছু খরচও হবে না। এই টিউটোরিয়ালের বাইরে বিলিং এড়াতে রিসোর্স বন্ধ করতে, আপনি আপনার তৈরি রিসোর্সগুলি মুছে ফেলতে পারেন অথবা প্রকল্পটি মুছে ফেলতে পারেন। নতুন গুগল ক্লাউড ব্যবহারকারীরা $300 USD ফ্রি ট্রায়াল প্রোগ্রামের জন্য যোগ্য।

ক্লাউড শেল সক্রিয় করুন

  1. ক্লাউড কনসোল থেকে, ক্লাউড শেল সক্রিয় করুন ক্লিক করুন 853e55310c205094.png সম্পর্কে .

55efc1aaa7a4d3ad.png সম্পর্কে

যদি আপনি প্রথমবারের মতো ক্লাউড শেল শুরু করেন, তাহলে আপনাকে একটি মধ্যবর্তী স্ক্রিন দেখানো হবে যা এটি কী তা বর্ণনা করবে। যদি আপনার কাছে একটি মধ্যবর্তী স্ক্রিন থাকে, তাহলে Continue এ ক্লিক করুন।

9c92662c6a846a5c.png সম্পর্কে

ক্লাউড শেলের সাথে সংযোগ স্থাপন এবং সংযোগ স্থাপন করতে মাত্র কয়েক মুহূর্ত সময় লাগবে।

9f0e51b578fecce5.png সম্পর্কে

এই ভার্চুয়াল মেশিনটিতে প্রয়োজনীয় সকল ডেভেলপমেন্ট টুল রয়েছে। এটি একটি স্থায়ী ৫ জিবি হোম ডিরেক্টরি অফার করে এবং গুগল ক্লাউডে চলে, যা নেটওয়ার্ক কর্মক্ষমতা এবং প্রমাণীকরণকে ব্যাপকভাবে উন্নত করে। এই কোডল্যাবে আপনার বেশিরভাগ কাজ, যদি সব না হয়, একটি ব্রাউজার দিয়ে করা যেতে পারে।

একবার ক্লাউড শেলের সাথে সংযুক্ত হয়ে গেলে, আপনি দেখতে পাবেন যে আপনি প্রমাণিত এবং প্রকল্পটি আপনার প্রকল্প আইডিতে সেট করা আছে।

  1. আপনি প্রমাণিত কিনা তা নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান:
gcloud auth list

কমান্ড আউটপুট

 Credentialed Accounts
ACTIVE  ACCOUNT
*       <my_account>@<my_domain.com>

To set the active account, run:
    $ gcloud config set account `ACCOUNT`
  1. gcloud কমান্ড আপনার প্রকল্প সম্পর্কে জানে কিনা তা নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান:
gcloud config list project

কমান্ড আউটপুট

[core]
project = <PROJECT_ID>

যদি তা না হয়, তাহলে আপনি এই কমান্ড দিয়ে এটি সেট করতে পারেন:

gcloud config set project <PROJECT_ID>

কমান্ড আউটপুট

Updated property [core/project].

৩. MySQL ইনস্ট্যান্সের জন্য একটি ক্লাউড SQL সেট আপ করুন

  1. ক্লাউড শেল চালু হওয়ার পরে, আপনি একটি নতুন ক্লাউড এসকিউএল ইনস্ট্যান্স তৈরি করতে কমান্ড লাইন ব্যবহার করতে পারেন:
$ gcloud sql instances create my-instance

এই অপারেশনটি সম্পন্ন হলে, আপনার ইনস্ট্যান্সটি ব্যবহারের জন্য প্রস্তুত হবে।

  1. এখন একটি ডাটাবেস তৈরি করুন যা আপনি পেটক্লিনিক অ্যাপের জন্য ব্যবহার করবেন:
$ gcloud sql databases create petclinic --instance my-instance

আপনি ক্লাউড কনসোলের মাধ্যমেও ইনস্ট্যান্সটি অ্যাক্সেস এবং কনফিগার করতে পারেন।

  1. নিম্নলিখিত কমান্ডটি চালিয়ে project-id:zone-id:instance-id ফর্ম্যাটে ইনস্ট্যান্স সংযোগের নামটি পান। আপনি পরে আপনার স্প্রিং বুট অ্যাপটি কনফিগার করার সময় এটি ব্যবহার করবেন।
$ gcloud sql instances describe my-instance | grep connectionName

৪. স্থানীয়ভাবে পেটক্লিনিক অ্যাপটি ক্লোন করুন এবং পরীক্ষা করুন

  1. আপনি এখন স্থানীয়ভাবে পেটক্লিনিক অ্যাপটি ক্লোন করবেন।
$ git clone https://github.com/spring-projects/spring-petclinic

$ cd spring-petclinic
  1. সঠিক জাভা সংস্করণ সেট করা আছে কিনা তা নিশ্চিত করুন এবং স্থানীয়ভাবে পেটক্লিনিক অ্যাপটি চালান।
$ export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64/

$ ./mvnw spring-boot:run
  1. ওয়েব প্রিভিউতে ক্লিক করুন 1a94d5bd10bfc072.png সম্পর্কে ক্লাউড শেল-এ, তারপর পোর্ট 8080-এ প্রিভিউ নির্বাচন করুন।

3aca52f76c6c22a3.png সম্পর্কে

আপনার ব্রাউজারে এখানে দেখানো পেটক্লিনিক হোমপেজটি দেখতে পাবেন:

34e0d4f1e1765560.png সম্পর্কে

  1. ঘুরে দেখুন এবং ডেটা যোগ করুন। অ্যাপটি একটি ইন-মেমরি হাইপারএসকিউএল ডাটাবেস ব্যবহার করে। আপনি এখন হাইপারএসকিউএল থেকে ক্লাউড এসকিউএল ডাটাবেস ব্যবহার করতে পারবেন।

৫. পেটক্লিনিকে ক্লাউড এসকিউএল ব্যবহার করুন

Maven pom.xml ফাইলটি আপডেট করুন।

এখানে দেখানো pom.xml ফাইলটি আপডেট করুন। স্টার্টারটি আপনার ক্লাউড 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>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 আপডেট করুন

  1. 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  

  1. অবশেষে, স্প্রিং বুট অ্যাপে 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

৬. ক্লাউড শেলে অ্যাপটি চালান

  1. আপনি স্প্রিং বুট প্লাগইন দিয়ে সাধারণত স্প্রিং বুট অ্যাপটি শুরু করতে পারেন:
$ ./mvnw -DskipTests spring-boot:run
  1. অ্যাপটি শুরু হয়ে গেলে, ওয়েব প্রিভিউতে ক্লিক করুন। 1a94d5bd10bfc072.png সম্পর্কে ক্লাউড শেল টুলবারে, তারপর পোর্ট 8080-এ প্রিভিউ নির্বাচন করুন।

3aca52f76c6c22a3.png সম্পর্কে

আপনার ব্রাউজারে এখানে দেখানো স্প্রিং পেটক্লিনিক হোমপেজটি আবার দেখতে পাবেন:

34e0d4f1e1765560.png সম্পর্কে

  1. পোষা প্রাণীর মালিকের নাম যোগ করুন।

ঐচ্ছিক: যাচাই করুন যে ক্লাউড SQL ডেটা ধরে রেখেছে।

আপনি যাচাই করতে পারেন যে আপনার প্রবেশ করানো ডেটা এখানে দেখানো হিসাবে ক্লাউড 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 ইনস্ট্যান্স মুছে ফেলুন

একবার আপনার অ্যাপটি বন্ধ করে দিলে, আপনি নিম্নলিখিত কমান্ড ব্যবহার করে ক্লাউড SQL ইনস্ট্যান্সটি মুছে ফেলতে পারেন:

$ gcloud sql instances delete my-instance

৭. অভিনন্দন

তুমি তোমার স্প্রিং বুট অ্যাপে ক্লাউড এসকিউএল-এর সাথে সংযোগ স্থাপন শিখেছ!

আরও জানুন