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

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

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

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

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

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

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

सर्वे

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

इसे सिर्फ़ पढ़ें इसे पढ़ें और कसरतों को पूरा करें

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

शुरुआती इंटरमीडिएट कुशल

Google Cloud की सेवाएं इस्तेमाल करने का आपका अनुभव कैसा रहा?

शुरुआती इंटरमीडिएट कुशल

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

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

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

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

मॉड्यूल 1 Python 2 नमूना ऐप्लिकेशन, App Engine NDB के ज़रिए Datastore के बंडल की गई सेवा का इस्तेमाल करता है. ऐप्लिकेशन ने पहले ही webapp2 से Flask पर फ़्रेमवर्क माइग्रेट कर दिए हैं—जो मॉड्यूल 1 कोडलैब में पूरे किए गए हैं—लेकिन इसके Datastore इस्तेमाल में कोई बदलाव नहीं हुआ है.

इस ट्यूटोरियल में ये चरण बताए गए हैं:

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

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

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

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

इन चरणों से यह पक्का होता है कि आपने सही कोड डाला है.

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

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

2. बेसलाइन ऐप्लिकेशन का नमूना डाउनलोड करें

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

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

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

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

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

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

a7a9d2b80d706a2b.png

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

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

ज़रूरी शर्तों.txt में SDK टूल जोड़ें

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

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 में किए जाने वाले ज़रूरी बदलावों के बारे में खास जानकारी:

पहले:

runtime: python27
threadsafe: yes
api_version: 1

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

बाद में:

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 में फ़्लास्क के लिए ज़रूरी अपडेट दिखाने के लिए, नीचे दिए गए बदलाव करें:

पहले:

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

app = Flask(__name__)

बाद में:

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 जैसी दूसरी सेवाओं को अतिरिक्त कोड की ज़रूरत होती है. हम उन सैंपल को किसी दूसरे माइग्रेशन मॉड्यूल में शामिल करेंगे.

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

6. खास जानकारी/क्लीनअप

यह सेक्शन, कोडलैब के इस मॉड्यूल को रैप करके पूरा करता है. इसके लिए, ऐप्लिकेशन को डिप्लॉय किया जाता है. साथ ही, यह पुष्टि की जाती है कि यह सही तरीके से और किसी भी नतीजे पर दिखने वाले आउटपुट के हिसाब से काम करता है या नहीं. ऐप्लिकेशन की पुष्टि करने के बाद, सभी क्लीनअप करें और आगे की कार्रवाई करें.

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

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

a7a9d2b80d706a2b.png

फ़ाइनल नोट

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

बधाई हो, आपने Python 2 App Engine के ऐप्लिकेशन को Python 3 में पोर्ट करने की दिशा में पहला कदम उठाया है. इस दौरान, बंडल की गई सेवाओं के इस्तेमाल में कोई बदलाव नहीं हुआ है.

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

सामान्य

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

अगर आपको पूरी जानकारी देनी है, तो App Engine जैसे Google Cloud के बिना सर्वर वाले कंप्यूट प्लैटफ़ॉर्म पर डिप्लॉय करने पर, मामूली बनाने और स्टोरेज का खर्च उठाना पड़ता है. Cloud Storage की तरह Cloud Build का अपना अलग कोटा होता है. उस इमेज का स्टोरेज, उसके कुछ हिस्से का इस्तेमाल करता है. हालांकि, हो सकता है कि आप किसी ऐसे क्षेत्र में हों जहां ऐसा कोई फ़्री टीयर उपलब्ध न हो. इसलिए, संभावित लागत को कम करने के लिए, अपने स्टोरेज के इस्तेमाल को ध्यान में रखें. 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*ेशन के हिसाब से होते हैं. जैसे, "us" अगर आपका ऐप्लिकेशन अमेरिका में होस्ट किया जाता है.

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

इस कोडलैब के लिए खास

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

अगले चरण

यहां से जाने के लिए कई दिशा निर्देश हैं:

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

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

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

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

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

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

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

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

कोडलैब (कोड बनाना सीखना) से जुड़ी समस्याएं/सुझाव/राय/शिकायत

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

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

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

Codelab

Python 2

Python 3

मॉड्यूल 1

कोड

लागू नहीं

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

लागू नहीं

कोड (mod1b-flask)

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

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

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

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

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

वीडियो

लाइसेंस

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