App Engine की बंडल की गई सेवाओं के लिए सहायता उपलब्ध कराना: पार्ट 1 (मॉड्यूल 17)

1. खास जानकारी

सर्वरलेस माइग्रेशन स्टेशन की कोडलैब सीरीज़ (अपने हिसाब से सीखने और प्रैक्टिकल करने वाले ट्यूटोरियल) और इससे जुड़े वीडियो का मकसद, Google Cloud सर्वरलेस डेवलपर की मदद करना है. इससे वे एक या उससे ज़्यादा माइग्रेशन करके, अपने ऐप्लिकेशन को बेहतर बना सकते हैं. इनमें मुख्य रूप से लेगसी सेवाओं से माइग्रेट करना शामिल है. ऐसा करने से, आपके ऐप्लिकेशन को एक जगह से दूसरी जगह ले जाना आसान हो जाता है. साथ ही, आपको ज़्यादा विकल्प और सुविधा मिलती है. इससे आपको Cloud प्रॉडक्ट की ज़्यादा रेंज के साथ इंटिग्रेट करने और उन्हें ऐक्सेस करने में मदद मिलती है. साथ ही, भाषा के नए वर्शन पर आसानी से अपग्रेड किया जा सकता है. शुरुआत में, इस सीरीज़ में मुख्य तौर पर App Engine (स्टैंडर्ड एनवायरमेंट) डेवलपर के लिए कॉन्टेंट शामिल किया गया था. हालांकि, अब इसमें अन्य सर्वरलेस प्लैटफ़ॉर्म के लिए भी कॉन्टेंट शामिल किया गया है. जैसे, Cloud Functions और Cloud Run. इसके अलावा, इसमें अन्य प्लैटफ़ॉर्म के लिए भी कॉन्टेंट शामिल किया गया है.

पहले, डेवलपर को भाषा के वर्शन अपग्रेड करने से पहले, App Engine की लेगसी "बंडल्ड सेवाओं" जैसे कि Datastore और Memcache से माइग्रेट करना पड़ता था. ये दोनों काम एक के बाद एक करने पड़ते थे, इसलिए इनमें काफ़ी मुश्किल आ सकती थी. बंडल की गई कई मुख्य सेवाओं को दूसरी जनरेशन की App Engine सेवा में उपलब्ध कराकर, डेवलपर अब अपने ऐप्लिकेशन को नए रनटाइम पर पोर्ट कर सकते हैं. साथ ही, बंडल की गई (ज़्यादातर) सेवाओं का इस्तेमाल जारी रख सकते हैं. इस कोडलैब में, आपको Python 2 से Python 3 में किसी सैंपल ऐप्लिकेशन को अपग्रेड करने का तरीका बताया गया है. साथ ही, इसमें App Engine NDB लाइब्रेरी के ज़रिए, बंडल की गई Datastore सेवा का इस्तेमाल जारी रखने के बारे में भी बताया गया है. इस ट्यूटोरियल में बताया जाएगा कि बंडल की गई ज़्यादातर सेवाओं का इस्तेमाल करने के लिए, कोड में सिर्फ़ एक छोटा सा अपडेट करना होता है. हालांकि, कुछ सेवाओं के लिए कोड में बड़े बदलाव करने पड़ते हैं. इनके बारे में "दूसरा भाग" में बताया जाएगा. यह एक फ़ॉलो-अप मॉड्यूल और कोडलैब है.

आपको इनके बारे में जानकारी मिलेगी

  • App Engine के सैंपल ऐप्लिकेशन को Python 2 से 3 में पोर्ट करना
  • ऐप्लिकेशन के कॉन्फ़िगरेशन को अपडेट करके, उसमें App Engine SDK टूल को शामिल करें
  • Python 3 जैसे दूसरी जनरेशन के रनटाइम में, बंडल की गई सेवाओं के साथ काम करने वाले ऐप्लिकेशन में SDK कोड जोड़ें

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

सर्वे

इस ट्यूटोरियल का इस्तेमाल कैसे किया जाएगा?

सिर्फ़ इसे पढ़ें इसे पढ़ें और एक्सरसाइज़ पूरी करें

Python के साथ अपने अनुभव को आप क्या रेटिंग देंगे?

शुरुआती सामान्य एडवांस

Google Cloud की सेवाओं को इस्तेमाल करने के अपने अनुभव को आप क्या रेटिंग देंगे?

शुरुआती सामान्य एडवांस

2. बैकग्राउंड

App Engine की ओरिजनल सेवा साल 2008 में लॉन्च हुई थी. इसमें लेगसी एपीआई का एक सेट शामिल था. इन्हें अब बंडल्ड सेवाएं कहा जाता है. इससे डेवलपर को दुनिया भर में ऐप्लिकेशन बनाने और उन्हें डिप्लॉय करने में आसानी होती है. इन सेवाओं में Datastore, Memcache, और Task Queue शामिल हैं. हालांकि, यह सुविधा काफ़ी आसान थी, लेकिन उपयोगकर्ताओं को अपने ऐप्लिकेशन को एक प्लैटफ़ॉर्म से दूसरे प्लैटफ़ॉर्म पर ले जाने में समस्या आ रही थी. ऐसा इसलिए हो रहा था, क्योंकि वे App Engine से जुड़े मालिकाना हक वाले एपीआई का इस्तेमाल कर रहे थे. इसलिए, वे चाहते थे कि उनके ऐप्लिकेशन को एक प्लैटफ़ॉर्म से दूसरे प्लैटफ़ॉर्म पर ले जाना आसान हो. इसके अलावा, बंडल की गई कई सेवाओं को अलग-अलग क्लाउड प्रॉडक्ट के तौर पर उपलब्ध कराया गया. इस वजह से, App Engine टीम ने 2018 में अगली जनरेशन का प्लैटफ़ॉर्म लॉन्च किया.

Python 2 के डेवलपर, Python 3 पर अपग्रेड करने के लिए उत्सुक हैं. बंडल की गई सेवाओं का इस्तेमाल करने वाले 2.x ऐप्लिकेशन को, उन सेवाओं से माइग्रेट करना पड़ा. इसके बाद ही, उनके ऐप्लिकेशन को 3.x पर पोर्ट किया जा सका. इससे, एक के बाद एक दो बार माइग्रेशन करना पड़ा. यह प्रोसेस मुश्किल भी हो सकती है. इस ट्रांज़िशन में मदद करने के लिए, App Engine टीम ने साल 2021 के पतझड़ में एक "वर्महोल" पेश किया था. इससे अगली जनरेशन के रनटाइम पर चलने वाले ऐप्लिकेशन, बंडल की गई कई सेवाओं को ऐक्सेस कर सकते हैं. इस रिलीज़ में, ओरिजनल रनटाइम में उपलब्ध सभी सेवाएं शामिल नहीं हैं. हालांकि, Datastore, Task Queue, और Memcache जैसी मुख्य सेवाएं उपलब्ध हैं.

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

Module 1 Python 2 का सैंपल ऐप्लिकेशन, App Engine NDB के ज़रिए Datastore बंडल की गई सेवा का इस्तेमाल करता है. ऐप्लिकेशन ने वेबऐप्लिकेशन2 से फ़्रेमवर्क को Flask में पहले ही माइग्रेट कर लिया है. यह काम Module 1 codelab में पूरा हो गया था. हालांकि, Datastore का इस्तेमाल अब भी किया जा रहा है.

इस ट्यूटोरियल में ये चरण शामिल हैं:

  1. सेटअप/प्रीवर्क
  2. कॉन्फ़िगरेशन अपडेट करना
  3. ऐप्लिकेशन कोड में बदलाव करना

3. सेटअप/प्रीवर्क

इस सेक्शन में, यह बताया गया है कि:

  1. अपना Cloud प्रोजेक्ट सेट अप करना
  2. बेसलाइन सैंपल ऐप्लिकेशन पाना
  3. बेसलाइन ऐप्लिकेशन को (फिर से) डिप्लॉय करें और उसकी पुष्टि करें

इन चरणों से यह पक्का किया जाता है कि आप काम करने वाले कोड से शुरुआत कर रहे हैं.

1. प्रोजेक्ट सेट अप करना

अगर आपने मॉड्यूल 1 का कोडलैब पूरा कर लिया है, तो हमारा सुझाव है कि आप उसी प्रोजेक्ट और कोड का फिर से इस्तेमाल करें. इसके अलावा, एक नया Cloud प्रोजेक्ट बनाएं या किसी मौजूदा प्रोजेक्ट का फिर से इस्तेमाल करें. पक्का करें कि प्रोजेक्ट में ऐसा चालू बिलिंग खाता हो जिसमें App Engine सेवा चालू हो.

2. बेसलाइन सैंपल ऐप्लिकेशन पाना

इस कोडलैब के लिए ज़रूरी है कि आपके पास Module 1 का App Engine ऐप्लिकेशन हो. इसके लिए, Module 1 का कोडलैब पूरा करें (सुझाया गया) या repo से Module 1 का ऐप्लिकेशन कॉपी करें. चाहे आपने बनाया हो या हमने, मॉड्यूल 1 का कोड वह जगह है जहां से हम "शुरू करेंगे." इस कोडलैब में, आपको हर चरण के बारे में बताया गया है. साथ ही, आखिर में ऐसा कोड दिया गया है जो मॉड्यूल 7 के रेपो फ़ोल्डर "FINISH" में मौजूद कोड जैसा है.

भले ही, आपने मॉड्यूल 1 के किसी भी ऐप्लिकेशन का इस्तेमाल किया हो, फ़ोल्डर ऐसा दिखना चाहिए. इसमें lib फ़ोल्डर भी हो सकता है:

$ ls
README.md               appengine_config.py     requirements.txt
app.yaml                main.py                 templates

3. बेसलाइन ऐप्लिकेशन को (फिर से) डिप्लॉय करना

Module 1 ऐप्लिकेशन को (फिर से) डिप्लॉय करने के लिए, यह तरीका अपनाएं:

  1. अगर lib फ़ोल्डर मौजूद है, तो उसे मिटाएं. इसके बाद, pip install -t lib -r requirements.txt चलाकर lib को फिर से भरें. अगर आपके पास Python 2 और 3, दोनों इंस्टॉल हैं, तो आपको pip2 कमांड का इस्तेमाल करना पड़ सकता है.
  2. पक्का करें कि आपने gcloud कमांड-लाइन टूल को इंस्टॉल और शुरू कर लिया हो. साथ ही, आपने इसके इस्तेमाल की समीक्षा कर ली हो.
  3. अगर आपको हर gcloud कमांड के साथ PROJECT_ID नहीं डालना है, तो अपने Cloud प्रोजेक्ट को gcloud config set project PROJECT_ID के साथ सेट करें.
  4. gcloud app deploy की मदद से, सैंपल ऐप्लिकेशन को डिप्लॉय करना
  5. पुष्टि करें कि मॉड्यूल 1 ऐप्लिकेशन, उम्मीद के मुताबिक काम कर रहा है. साथ ही, इसमें हाल ही की विज़िट की जानकारी दिख रही है. इसकी जानकारी यहां दी गई है

a7a9d2b80d706a2b.png

4. कॉन्फ़िगरेशन अपडेट करना

इन चरणों को पूरा करने के बाद, अगर आपको लगता है कि आपका वेब ऐप्लिकेशन काम कर रहा है, तो इस ऐप्लिकेशन को Python 3 में पोर्ट किया जा सकता है. इसके लिए, सबसे पहले कॉन्फ़िगरेशन से शुरुआत करें.

requirements.txt फ़ाइल में एसडीके टूल जोड़ना

App Engine Python 3 रनटाइम, तीसरे पक्ष की लाइब्रेरी का इस्तेमाल करने के लिए ज़रूरी ओवरहेड को काफ़ी कम कर देता है. इसके लिए, आपको सिर्फ़ requirements.txt में उन्हें लिस्ट करना होगा. Python 3 में बंडल की गई सेवाओं का इस्तेमाल करने के लिए, उसमें App Engine SDK पैकेज, appengine-python-standard जोड़ें. SDK पैकेज, मॉड्यूल 1 से Flask में शामिल होता है:

flask
appengine-python-standard

app.yaml फ़ाइल अपडेट करना

अपनी app.yaml फ़ाइल में कॉन्फ़िगरेशन में किए गए बदलावों को लागू करने के लिए, यहां दिया गया तरीका अपनाएं:

  1. runtime डायरेक्टिव को Python 3 के उस वर्शन से बदलें जो काम करता है. उदाहरण के लिए, Python 3.10 के लिए python310 तय करें.
  2. threadsafe और api_version, दोनों डायरेक्टिव मिटा दें, क्योंकि Python 3 में इनमें से किसी का भी इस्तेमाल नहीं किया जाता.
  3. handlers सेक्शन को पूरी तरह से मिटा दें, क्योंकि इस ऐप्लिकेशन में सिर्फ़ स्क्रिप्ट हैंडलर हैं. अगर आपके ऐप्लिकेशन में स्टैटिक फ़ाइल हैंडलर हैं, तो उन्हें handlers में वैसे ही रहने दें.
  4. Python 3 रनटाइम, बिल्ट-इन तीसरे पक्ष की लाइब्रेरी के साथ काम नहीं करता. हालांकि, Python 2 रनटाइम के साथ ऐसा नहीं है. अगर आपके ऐप्लिकेशन में app.yaml में libraries सेक्शन है, तो पूरे सेक्शन को मिटाएं. (सिर्फ़ ज़रूरी पैकेज को requirements.txt में शामिल करना होगा. जैसे, नॉन-बिल्ट-इन लाइब्रेरी.) हमारे सैंपल ऐप्लिकेशन में libraries सेक्शन नहीं है. इसलिए, अगले चरण पर जाएं.
  5. इसका इस्तेमाल करने के लिए, app_engine_apis डायरेक्टिव को true पर सेट करें. यह ऊपर दिए गए requirements.txt में App Engine SDK पैकेज जोड़ने के बराबर है.

app.yaml में किए जाने वाले ज़रूरी बदलावों के बारे में खास जानकारी:

BEFORE:

runtime: python27
threadsafe: yes
api_version: 1

handlers:
- url: /.*
  script: main.app

AFTER:

runtime: python310
app_engine_apis: true

अन्य कॉन्फ़िगरेशन फ़ाइलें

क्योंकि सभी तीसरे पक्ष के पैकेज को सिर्फ़ requirements.txt में लिस्ट करना होता है. अगर आपके पास appengine_config.py में कोई खास जानकारी नहीं है, तो इसकी ज़रूरत नहीं है. इसलिए, इसे मिटा दें. इसी तरह, बिल्ड प्रोसेस के दौरान सभी तीसरे पक्ष की लाइब्रेरी अपने-आप इंस्टॉल हो जाती हैं. इसलिए, उन्हें कॉपी करने या वेंडर करने की ज़रूरत नहीं होती. इसका मतलब है कि अब pip install कमांड और lib फ़ोल्डर की ज़रूरत नहीं है. इसलिए, इसे मिटा दें. खास जानकारी जनरेट की जा रही है:

  • appengine_config.py फ़ाइल मिटाएं
  • lib फ़ोल्डर मिटा दिया जाए?

कॉन्फ़िगरेशन में किए जाने वाले सभी ज़रूरी बदलाव पूरे हो गए हैं.

5. ऐप्लिकेशन कोड में बदलाव करना

Python 3 रनटाइम एनवायरमेंट में, बंडल की गई ज़्यादातर सेवाओं को ऐक्सेस करने के लिए, main.py में वेब सर्वर गेटवे इंटरफ़ेस (WSGI) ऐप्लिकेशन ऑब्जेक्ट को रैप करने वाले कोड के एक छोटे से हिस्से की ज़रूरत होती है. रैपर फ़ंक्शन google.appengine.api.wrap_wsgi_app() है. इसका इस्तेमाल करने के लिए, इसे इंपोर्ट करें और अपने WSGI ऑब्जेक्ट को इससे रैप करें. main.py में Flask के लिए ज़रूरी अपडेट दिखाने के लिए, यहां दिए गए बदलाव करें:

BEFORE:

from flask import Flask, render_template, request
from google.appengine.ext import ndb

app = Flask(__name__)

AFTER:

from flask import Flask, render_template, request
from google.appengine.api import wrap_wsgi_app
from google.appengine.ext import ndb

app = Flask(__name__)
app.wsgi_app = wrap_wsgi_app(app.wsgi_app)

अन्य Python फ़्रेमवर्क के लिए, WSGI-रैपिंग के उदाहरणों के लिए दस्तावेज़ देखें.

इस उदाहरण से, आपके ऐप्लिकेशन को Python 3 में बंडल की गई ज़्यादातर सेवाओं का ऐक्सेस मिल जाता है. हालाँकि, Blobstore और Mail जैसी अन्य सेवाओं के लिए अतिरिक्त कोड की ज़रूरत होती है. हम उन सैंपल के बारे में, माइग्रेशन के दूसरे मॉड्यूल में बताएंगे.

Module 1 के सैंपल ऐप्लिकेशन में App Engine की बंडल की गई सेवाओं का इस्तेमाल करने के लिए, ज़रूरी बदलाव पूरे हो गए हैं. ऐप्लिकेशन पहले से ही Python 2 और 3 के साथ काम करता है. इसलिए, इसे Python 3 पर पोर्ट करने के लिए, कॉन्फ़िगरेशन में किए गए बदलावों के अलावा कोई और बदलाव करने की ज़रूरत नहीं है. आखिरी चरण: बदलाव किए गए इस ऐप्लिकेशन को अगली जनरेशन के App Engine Python 3 रनटाइम पर डिप्लॉय करें. साथ ही, पुष्टि करें कि अपडेट हो गए हैं.

6. खास जानकारी/सफ़ाई

इस सेक्शन में, ऐप्लिकेशन को डिप्लॉय करके इस कोडलैब को पूरा किया गया है. साथ ही, यह पुष्टि की गई है कि ऐप्लिकेशन ठीक से काम कर रहा है और आउटपुट में कोई गड़बड़ी नहीं है. ऐप्लिकेशन की पुष्टि होने के बाद, क्लीन-अप करें और अगले चरणों पर विचार करें.

ऐप्लिकेशन डिप्लॉय करना और उसकी पुष्टि करना

gcloud app deploy की मदद से Python 3 ऐप्लिकेशन को डिप्लॉय करें. साथ ही, पुष्टि करें कि ऐप्लिकेशन, Python 2 में काम करने की तरह ही काम कर रहा है. फ़ंक्शन में कोई बदलाव नहीं किया गया है. इसलिए, आउटपुट मॉड्यूल 1 ऐप्लिकेशन जैसा ही होना चाहिए:

a7a9d2b80d706a2b.png

फ़ाइनल नोट

  • अपने जवाब की तुलना Module 1b folder (FINISH) में मौजूद जवाब से करें. अगर आपने कोई गलती की है, तो उसे ठीक करें.
  • अगर आपका ऐप्लिकेशन अब भी webapp2 का इस्तेमाल करता है, तो इस पेज पर जाकर, मॉड्यूल 0 main.py की तुलना मॉड्यूल 1b main.py से करें. इसके बाद, मॉड्यूल 1 कोडलैब पूरा करें. इससे आपको webapp2 से Flask पर माइग्रेट करने का तरीका पता चलेगा.

Python 2 वाले App Engine ऐप्लिकेशन को Python 3 में पोर्ट करने के लिए बधाई. साथ ही, इस समय बंडल की गई सेवाओं का इस्तेमाल जारी रखने के लिए भी बधाई.

व्यवस्थित करें

सामान्य

अगर आपको अभी और काम नहीं करना है, तो हमारा सुझाव है कि आप अपने App Engine ऐप्लिकेशन को बंद कर दें, ताकि आपसे शुल्क न लिया जाए. हालांकि, अगर आपको कुछ और टेस्ट या एक्सपेरिमेंट करने हैं, तो App Engine प्लैटफ़ॉर्म पर मुफ़्त कोटा उपलब्ध है. इसलिए, जब तक आप इस्तेमाल की उस सीमा से ज़्यादा नहीं होते हैं, तब तक आपसे कोई शुल्क नहीं लिया जाएगा. यह शुल्क कंप्यूट के लिए है. हालांकि, App Engine की सेवाओं के लिए भी शुल्क लिया जा सकता है. इसलिए, ज़्यादा जानकारी के लिए कीमत वाला पेज देखें. अगर इस माइग्रेशन में अन्य क्लाउड सेवाएं शामिल हैं, तो उनके लिए अलग से बिल भेजा जाता है. अगर लागू हो, तो दोनों ही मामलों में, नीचे दिया गया "इस कोडलैब के लिए खास जानकारी" सेक्शन देखें.

पूरी जानकारी के लिए बता दें कि App Engine जैसे Google Cloud के सर्वरलेस कंप्यूट प्लैटफ़ॉर्म पर डिप्लॉय करने से, बिल्ड और स्टोरेज के लिए मामूली शुल्क लगता है. Cloud Build का अपना मुफ़्त कोटा होता है. साथ ही, Cloud Storage का भी अपना मुफ़्त कोटा होता है. उस इमेज को सेव करने के लिए, स्टोरेज कोटा का कुछ हिस्सा इस्तेमाल किया जाता है. हालांकि, ऐसा हो सकता है कि आपके देश/इलाके में बिना किसी शुल्क के स्टोरेज इस्तेमाल करने की सुविधा उपलब्ध न हो. इसलिए, स्टोरेज के इस्तेमाल पर नज़र रखें, ताकि संभावित लागत को कम किया जा सके. Cloud Storage के कुछ "फ़ोल्डर" की समीक्षा करनी चाहिए. इनमें ये शामिल हैं:

  • console.cloud.google.com/storage/browser/LOC.artifacts.PROJECT_ID.appspot.com/containers/images
  • console.cloud.google.com/storage/browser/staging.PROJECT_ID.appspot.com
  • ऊपर दिए गए स्टोरेज लिंक, आपके PROJECT_ID और *LOC*ation पर निर्भर करते हैं. उदाहरण के लिए, अगर आपका ऐप्लिकेशन अमेरिका में होस्ट किया गया है, तो "us" दिखेगा.

दूसरी ओर, अगर आपको इस ऐप्लिकेशन या माइग्रेशन से जुड़े अन्य कोडलैब का इस्तेमाल नहीं करना है और आपको सब कुछ पूरी तरह से मिटाना है, तो अपना प्रोजेक्ट बंद करें.

इस कोडलैब के लिए खास तौर पर

यहां दी गई सेवाएं, इस कोड सीखने की लैब के लिए खास तौर पर बनाई गई हैं. ज़्यादा जानकारी के लिए, हर प्रॉडक्ट का दस्तावेज़ देखें:

अगले चरण

यहां से कई काम किए जा सकते हैं:

  1. बंडल की गई सेवाओं का इस्तेमाल करके कोड अपडेट करना. इसके लिए, कोड में ज़्यादा बदलाव करने पड़ते हैं
  2. बंडल की गई सेवाओं से, Cloud के स्टैंडअलोन प्रॉडक्ट पर माइग्रेट करना
  3. App Engine से किसी दूसरे Cloud serverless प्लैटफ़ॉर्म पर माइग्रेट करना

Blobstore, Mail, और Deferred जैसी अन्य बंडल की गई सेवाओं को ऐक्सेस करने के लिए, कोड में ज़्यादा बदलाव करने पड़ते हैं. App Engine की लेगसी बंडल्ड सेवाओं से दूर जाने पर फ़ोकस करने वाले माइग्रेशन मॉड्यूल में ये शामिल हैं:

App Engine अब Google Cloud में सर्वरलेस प्लैटफ़ॉर्म नहीं है. अगर आपके पास कोई छोटा App Engine ऐप्लिकेशन है या ऐसा ऐप्लिकेशन है जिसमें सीमित सुविधाएं हैं और आपको उसे स्टैंडअलोन माइक्रोसेवा में बदलना है या आपको किसी मोनोलिथिक ऐप्लिकेशन को फिर से इस्तेमाल किए जा सकने वाले कई कॉम्पोनेंट में बांटना है, तो Cloud Functions पर माइग्रेट करने के लिए ये अच्छी वजहें हैं. अगर कंटेनर बनाने की प्रोसेस, ऐप्लिकेशन डेवलपमेंट वर्कफ़्लो का हिस्सा बन गई है, तो Cloud Run पर माइग्रेट करें. खास तौर पर, अगर इसमें सीआई/सीडी (लगातार इंटिग्रेशन/लगातार डिलीवरी या डिप्लॉयमेंट) पाइपलाइन शामिल है. इन स्थितियों के बारे में यहां दिए गए मॉड्यूल में बताया गया है:

  • App Engine से Cloud Functions पर माइग्रेट करना: मॉड्यूल 11 देखें
  • App Engine से Cloud Run पर माइग्रेट करना: Docker की मदद से अपने ऐप्लिकेशन को कंटेनर में बदलने के लिए, मॉड्यूल 4 देखें. इसके अलावा, कंटेनर, Docker की जानकारी या Dockerfile के बिना ऐसा करने के लिए, मॉड्यूल 5 देखें

किसी दूसरे सर्वरलेस प्लैटफ़ॉर्म पर स्विच करना ज़रूरी नहीं है. हमारा सुझाव है कि कोई भी बदलाव करने से पहले, अपने ऐप्लिकेशन और इस्तेमाल के उदाहरणों के लिए सबसे सही विकल्पों पर विचार करें.

अगले माइग्रेशन मॉड्यूल के तौर पर किसी भी मॉड्यूल को चुना जा सकता है. हालांकि, Serverless Migration Station का पूरा कॉन्टेंट (कोड लैब, वीडियो, सोर्स कोड [अगर उपलब्ध हो]) इसके ओपन सोर्स रेपो में ऐक्सेस किया जा सकता है. रेपो के README में यह भी बताया गया है कि किन माइग्रेशन पर विचार करना चाहिए. साथ ही, माइग्रेशन मॉड्यूल के "क्रम" के बारे में भी बताया गया है.

7. अन्य संसाधन

यहां डेवलपर के लिए कुछ और संसाधन दिए गए हैं. इनकी मदद से, डेवलपर इस या इससे मिलते-जुलते माइग्रेशन मॉड्यूल के साथ-साथ इससे जुड़े प्रॉडक्ट के बारे में ज़्यादा जान सकते हैं. इसमें इस कॉन्टेंट पर सुझाव/राय देने या शिकायत करने की जगह, कोड के लिंक, और कई तरह के दस्तावेज़ शामिल हैं, जो आपके काम आ सकते हैं.

कोडलैब से जुड़ी समस्याएं/सुझाव/राय

अगर आपको इस कोडलैब में कोई समस्या मिलती है, तो कृपया शिकायत दर्ज करने से पहले अपनी समस्या खोजें. नई समस्याएं खोजने और बनाने के लिए लिंक:

माइग्रेशन के लिए उपलब्ध संसाधन

मॉड्यूल 1 (START) और मॉड्यूल 1b (FINISH) के लिए, repo फ़ोल्डर के लिंक यहां दिए गए हैं. इन्हें App Engine के सभी कोडलैब माइग्रेशन के लिए उपलब्ध रिपो से भी ऐक्सेस किया जा सकता है.

कोडलैब

Python 2

Python 3

Module 1

code

लागू नहीं

मॉड्यूल 17 (यह कोडलैब)

लागू नहीं

code (mod1b-flask)

ऑनलाइन संसाधन

यहां कुछ ऑनलाइन संसाधन दिए गए हैं, जो इस ट्यूटोरियल के लिए काम के हो सकते हैं:

App Engine की बंडल की गई सेवाएं

App Engine के सामान्य दस्तावेज़

क्लाउड से जुड़ी अन्य जानकारी

वीडियो

लाइसेंस

इस काम के लिए, Creative Commons एट्रिब्यूशन 2.0 जेनेरिक लाइसेंस के तहत लाइसेंस मिला है.