Spring बूट ऐप्लिकेशन को App Engine स्टैंडर्ड एनवायरमेंट में डिप्लॉय करें

Spring बूट ऐप्लिकेशन को App Engine स्टैंडर्ड एनवायरमेंट में डिप्लॉय करें

इस कोडलैब (कोड बनाना सीखने के लिए ट्यूटोरियल) के बारे में जानकारी

subjectपिछली बार अप्रैल 21, 2023 को अपडेट किया गया
account_circleकिसी Googler ने लिखा है

1. शुरू करने से पहले

App Engine ऐप्लिकेशन बनाने में आसान हैं, बनाए रखने में आसान हैं, और आपके ट्रैफ़िक और डेटा स्टोरेज की ज़रूरतों को बदलने के साथ-साथ मापने में भी आसान हैं. App Engine में, रखरखाव के लिए कोई सर्वर नहीं होता. आप बस अपना ऐप्लिकेशन अपलोड करें और वह इस्तेमाल के लिए तैयार है.

App Engine ऐप्लिकेशन की सुविधा, आने वाले ट्रैफ़िक के हिसाब से अपने-आप बढ़ती है. लोड बैलेंसिंग, माइक्रोसर्विस, ऑथराइज़ेशन, SQL और NoSQL डेटाबेस, मेमोरी कैश मेमोरी, ट्रैफ़िक का बंटवारा, लॉगिंग, खोज, वर्शन, रोल आउट और रोलबैक, और सिक्योरिटी स्कैनिंग की सुविधा नेटिव तौर पर काम करती है. इसे अपनी पसंद के मुताबिक भी बनाया जा सकता है.

App Engine स्टैंडर्ड एनवायरमेंट और App Engine फ़्लेक्सिबल एनवायरमेंट, Java, Python, PHP, NodeJS, और Go जैसी प्रोग्रामिंग भाषाओं के साथ काम करते हैं. इन दोनों एनवायरमेंट की मदद से, डेवलपर को यह तय करने में आसानी होती है कि उनका ऐप्लिकेशन कैसे काम करता है. हर एनवायरमेंट की अपनी कुछ खूबियां होती हैं. ज़्यादा जानकारी के लिए, App Engine एनवायरमेंट चुनना लेख पढ़ें.

आप Spring बूट ऐप्लिकेशन को App Engine स्टैंडर्ड एनवायरमेंट में डिप्लॉय करने के बारे में जानेंगे. जब कोई भी स्टैंडर्ड एनवायरमेंट का इस्तेमाल नहीं कर रहा होता है, तो स्टैंडर्ड एनवायरमेंट का साइज़ शून्य हो जाता है और यह अपने-आप बड़ा हो जाता है!

ज़रूरी शर्तें

  • Java प्रोग्रामिंग भाषा और टूल की जानकारी
  • Linux के स्टैंडर्ड टेक्स्ट एडिटर की जानकारी, जैसे कि Vim, Emacs, और नैनो

आपको क्या करना होगा

  • App Engine पर Spring बूट Java ऐप्लिकेशन बनाने का तरीका

आपको इन चीज़ों की ज़रूरत होगी

  • Google Cloud प्रोजेक्ट
  • ब्राउज़र, जैसे कि Google Chrome

2. सेटअप और ज़रूरी शर्तें

अपने हिसाब से एनवायरमेंट सेटअप करना

  1. Google Cloud Console में साइन इन करें और नया प्रोजेक्ट बनाएं या किसी मौजूदा प्रोजेक्ट का फिर से इस्तेमाल करें. अगर आपके पास पहले से Gmail या Google Workspace खाता नहीं है, तो आपको नया खाता बनाना होगा.

b35bf95b8bf3d5d8.png

a99b7ace416376c4.png

bd84a6d3004737c5.png

  • प्रोजेक्ट का नाम, इस प्रोजेक्ट में हिस्सा लेने वाले लोगों का डिसप्ले नेम होता है. यह एक वर्ण स्ट्रिंग है, जिसका इस्तेमाल Google API नहीं करता. इसे कभी भी अपडेट किया जा सकता है.
  • प्रोजेक्ट आईडी, Google Cloud के सभी प्रोजेक्ट के लिए यूनीक होता है. साथ ही, इसे बदला नहीं जा सकता. इसे सेट करने के बाद बदला नहीं जा सकता. Cloud Console, एक यूनीक स्ट्रिंग अपने-आप जनरेट करता है; आम तौर पर, आपको उसके होने की कोई परवाह नहीं होती. ज़्यादातर कोडलैब में, आपको अपना प्रोजेक्ट आईडी बताना होगा. आम तौर पर, इसकी पहचान PROJECT_ID के रूप में की जाती है. अगर आपको जनरेट किया गया आईडी पसंद नहीं है, तो किसी भी क्रम में एक और आईडी जनरेट किया जा सकता है. दूसरा तरीका यह है कि आप खुद भी आज़माकर देखें कि वह उपलब्ध है या नहीं. इस चरण के बाद, इसे बदला नहीं जा सकता. साथ ही, यह प्रोजेक्ट के खत्म होने तक बना रहता है.
  • आपकी जानकारी के लिए, प्रोजेक्ट नंबर नाम की एक तीसरी वैल्यू दी गई है. इसका इस्तेमाल कुछ एपीआई करते हैं. दस्तावेज़ में इन तीनों वैल्यू के बारे में ज़्यादा जानें.
  1. इसके बाद, आपको क्लाउड संसाधनों/एपीआई का इस्तेमाल करने के लिए, Cloud Console में बिलिंग चालू करनी होगी. इस कोडलैब का इस्तेमाल करने पर, आपको ज़्यादा पैसे नहीं चुकाने होंगे. इस ट्यूटोरियल के अलावा, बिलिंग से बचने के लिए संसाधनों को बंद करें. इसके लिए, अपने बनाए गए संसाधनों को मिटाएं या प्रोजेक्ट को मिटाएं. Google Cloud के नए उपयोगकर्ता, 300 डॉलर के मुफ़्त ट्रायल वाले प्रोग्राम में हिस्सा ले सकते हैं.

क्लाउड शेल

आप Cloud Shell का इस्तेमाल करेंगे. यह Google Cloud में चलने वाला एक कमांड-लाइन एनवायरमेंट है.

Cloud Shell चालू करें

  1. Cloud Console में, Cloud Shell चालू करें 853e55310c205094.png पर क्लिक करें.

55efc1aaa7a4d3ad.png

अगर आपने Cloud Shell का इस्तेमाल पहली बार किया है, तो आपको बीच में आने वाली स्क्रीन दिखेगी. इसमें यह बताया जाएगा कि यह क्या है. अगर आपको बीच के लेवल पर मिलने वाली स्क्रीन दिखती है, तो जारी रखें पर क्लिक करें.

9c92662c6a846a5c.png

प्रावधान करने और Cloud Shell से कनेक्ट होने में कुछ ही समय लगेगा.

9f0e51b578fecce5.png

इस वर्चुअल मशीन में डेवलपमेंट के सभी ज़रूरी टूल मौजूद हैं. इसमें लगातार पांच जीबी की होम डायरेक्ट्री मिलती है और यह Google Cloud में काम करती है. यह नेटवर्क की परफ़ॉर्मेंस और ऑथेंटिकेशन को बेहतर बनाने में मदद करती है. अगर सभी नहीं, तो इस कोडलैब में आपका बहुत सारा काम ब्राउज़र से किया जा सकता है.

Cloud Shell से कनेक्ट करने के बाद, आपको दिखेगा कि आपकी पुष्टि हो चुकी है और प्रोजेक्ट आपके प्रोजेक्ट आईडी पर सेट है.

  1. यह पुष्टि करने के लिए 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`
  1. Cloud Shell में यह कमांड चलाएं, ताकि यह पुष्टि की जा सके कि gcloud के लिए कमांड को आपके प्रोजेक्ट के बारे में जानकारी है:
gcloud config list project

कमांड आउटपुट

[core]
project = <PROJECT_ID>

अगर ऐसा नहीं है, तो आप इसे इस निर्देश की मदद से सेट कर सकते हैं:

gcloud config set project <PROJECT_ID>

कमांड आउटपुट

Updated property [core/project].

3. Spring बूट का नया वेब ऐप्लिकेशन बनाएं

Cloud Shell के लॉन्च होने के बाद, कमांड लाइन का इस्तेमाल करके Spring Initializr वाला नया Spring बूट ऐप्लिकेशन जनरेट किया जा सकता है.

$ curl https://start.spring.io/starter.tgz \
  -d bootVersion=3.0.5 \
  -d dependencies=web \
  -d type=maven-project \
  -d baseDir=gae-standard-example | tar -xzvf -
$ cd gae-standard-example

4. Maven की pom.xml फ़ाइल अपडेट करें

Java सर्वर ऐप्लिकेशन को डिप्लॉय करने के दो तरीके हैं. पहला, Maven App Engine प्लगिन या Gradle App Engine प्लगिन का इस्तेमाल करके या war पैकेज डायरेक्ट्री को डिप्लॉय करके. ऐप्लिकेशन को डिप्लॉय करने के लिए, आपको Maven App Engine प्लगिन का इस्तेमाल करना होगा.

Maven App Engine प्लगिन जोड़ें

डिप्लॉयमेंट की प्रक्रिया को आसान बनाने वाला Google Cloud प्लगिन शामिल करने के लिए, pom.xml को अपडेट करें. फ़ाइल में बदलाव करने के लिए, Vim, नैनो या Emacs का इस्तेमाल किया जा सकता है.

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" ...>
  ...
 
<build>
   
<plugins>
      ...
     
<plugin>
       
<groupId>com.google.cloud.tools</groupId>
       
<artifactId>appengine-maven-plugin</artifactId>
       
<version>2.4.4</version>
       
<configuration>
         
<version>1</version>
         
<projectId>GCLOUD_CONFIG</projectId>
       
</configuration>
     
</plugin>
      ...
   
</plugins>
 
</build>
</project>

5. App Engine डिस्क्रिप्टर जोड़ें

  1. ऐप्लिकेशन को App Engine स्टैंडर्ड एनवायरमेंट में डिप्लॉय करने के लिए, आपको एक नई src/main/appengine/app.yaml डिस्क्रिप्टर फ़ाइल बनानी होगी.
$ mkdir -p src/main/appengine/
$ touch src/main/appengine/app.yaml
  1. src/main/appengine/app.yaml फ़ाइल में बदलाव करें और यह कॉन्टेंट जोड़ें:

src/main/appengine/app.yaml

runtime: java17
instance_class
: F1

6. कंट्रोलर जोड़ें

एक नया कंट्रोलर जोड़ें जो DemoApplication.java में "hello world!" दिखाता हो.

src/main/java/com/example/demo/DemoApplication.java

package com.example.demo;

...

// Add imports
import org.springframework.web.bind.annotation.*;

@SpringBootApplication
public class DemoApplication {
 
public static void main(String[] args) {
   
SpringApplication.run(DemoApplication.class, args);
 
}
}

// Add the controller.
@RestController
class HelloWorldController {
 
@GetMapping("/")
 
public String hello() {
   
return "hello world!";
 
}
}

7. ऐप्लिकेशन को डिवाइस पर चलाएं

  1. सुनिश्चित करें कि JAVA_HOME को सही JDK वर्शन पर सेट किया गया है:
$ export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64/
  1. आप Spring बूट प्लगिन से Spring बूट ऐप्लिकेशन शुरू कर सकते हैं:
$ ./mvnw -DskipTests spring-boot:run
  1. ऐप्लिकेशन शुरू होने के बाद, Cloud Shell टूलबार में वेब प्रीव्यू 1a94d5bd10bfc072.pngपर क्लिक करें और पोर्ट 8080 पर झलक देखें को चुनें.

3aca52f76c6c22a3.png

आपके ब्राउज़र में एक टैब खुलता है और आपके शुरू किए गए सर्वर से कनेक्ट करता है.

7b0d8494f647822a.png

8. ऐप्लिकेशन को App Engine में डिप्लॉय करें

  1. सबसे पहले, App Engine ऐप्लिकेशन चलाने के लिए प्रोजेक्ट शुरू करें. साथ ही, अमेरिका के मध्य क्षेत्र में चलाने के लिए प्रोजेक्ट शुरू करें.
$ gcloud app create --region us-central
You are creating an app for project [...].
WARNING: Creating an App Engine application for a project is irreversible and the region
cannot be changed. More information about regions is at
https://cloud.google.com/appengine/docs/locations
  1. इसके बाद, mvn appengine:deploy चलाकर अपने ऐप्लिकेशन को App Engine स्टैंडर्ड एनवायरमेंट में डिप्लॉय करें.
$ ./mvnw -DskipTests package appengine:deploy
... first time deploy may take a couple of minutes
  1. ऐप्लिकेशन डिप्लॉय होने के बाद, अपने वेब ब्राउज़र में http://<project-id>.appspot.com खोलकर या क्लाउड शेल में यहां दिए गए कमांड का इस्तेमाल करके, इस पर जाएं:
$ gcloud app browse
... [It may print out the URL for your app]

9. साफ़-सफ़ाई सेवा

आप किसी App Engine ऐप्लिकेशन को नहीं हटा सकते, लेकिन आप उसे अक्षम कर सकते हैं.

Google Cloud Console में App Engine और Settings पर जाएं और Disable Application को चुनें:

8052c1e4ad73d70e.png

इसके अलावा, पूरा प्रोजेक्ट मिटाया जा सकता है:

$ gcloud projects delete YOUR-PROJECT-ID

10. बधाई हो

आपने अपना पहला App Engine वेब ऐप्लिकेशन लिखना सीख लिया है!

ज़्यादा जानें