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 टूल का कोड जोड़ना
आपको इनकी ज़रूरत होगी
- चालू GCP बिलिंग खाते वाला Google Cloud प्रोजेक्ट
- Python के बुनियादी हुनर
- सामान्य Linux कमांड के बारे में काम करने की जानकारी
- App Engine ऐप्लिकेशन डेवलप करने और डिप्लॉय करने की बुनियादी जानकारी
- काम करने वाला मॉड्यूल 1 App Engine ऐप्लिकेशन (इसके कोडलैब को पूरा करें [सुझाया गया] या रेपो से ऐप्लिकेशन को कॉपी करें)
सर्वे
इस ट्यूटोरियल का इस्तेमाल कैसे किया जाएगा?
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 इस्तेमाल में कोई बदलाव नहीं हुआ है.
इस ट्यूटोरियल में ये चरण बताए गए हैं:
- सेटअप/प्रीवर्क
- कॉन्फ़िगरेशन अपडेट करें
- ऐप्लिकेशन कोड बदलें
3. सेटअप/प्रीवर्क
इस सेक्शन में, इन कामों को करने का तरीका बताया गया है:
- अपना क्लाउड प्रोजेक्ट सेट अप करें
- बेसलाइन ऐप्लिकेशन का नमूना डाउनलोड करें
- (फिर से) बेसलाइन ऐप्लिकेशन डिप्लॉय करना और उसकी पुष्टि करना
इन चरणों से यह पक्का होता है कि आपने सही कोड डाला है.
1. प्रोजेक्ट सेटअप करें
अगर आपने मॉड्यूल 1 कोडलैब (कोड बनाना सीखना) पूरा कर लिया है, तो हमारा सुझाव है कि आप उसी प्रोजेक्ट (और कोड) का फिर से इस्तेमाल करें. इसके अलावा, नया Cloud प्रोजेक्ट बनाएं या किसी मौजूदा प्रोजेक्ट का फिर से इस्तेमाल करें. पक्का करें कि प्रोजेक्ट में एक चालू बिलिंग खाता हो, जिसमें App Engine की सेवा चालू की गई हो.
2. बेसलाइन ऐप्लिकेशन का नमूना डाउनलोड करें
इस कोडलैब के लिए एक ज़रूरी शर्त यह है कि आपके पास ऐसा मॉड्यूल 1 App Engine ऐप्लिकेशन हो जो काम कर रहा हो: मॉड्यूल 1 कोडलैब (सुझाया गया) को पूरा करें या रेपो से मॉड्यूल 1 ऐप्लिकेशन को कॉपी करें. आप अपना या हमारा, दोनों में से किसी का भी इस्तेमाल करें, मॉड्यूल 1 कोड पर हम "शुरू" करेंगे. कोडलैब से आपको हर चरण पर जानकारी मिलेगी. इससे आपको एक कोड मिलेगा, जो मॉड्यूल 7 रेपो फ़ोल्डर "FINISH" में मौजूद कोड से मिलता-जुलता होगा.
- START: मॉड्यूल 1 फ़ोल्डर (Python 2)
- FINISH: मॉड्यूल 1b फ़ोल्डर (Python 3)
- पूरा रेपो (क्लोन करने या ZIP फ़ाइल डाउनलोड करने के लिए)
आप चाहे जो भी मॉड्यूल 1 ऐप्लिकेशन इस्तेमाल करें, फ़ोल्डर यहां दिए गए फ़ोल्डर की तरह दिखना चाहिए. इसके अलावा, यह lib
फ़ोल्डर के साथ भी दिख सकता है:
$ ls README.md appengine_config.py requirements.txt app.yaml main.py templates
3. (फिर से) बेसलाइन ऐप्लिकेशन डिप्लॉय करें
मॉड्यूल 1 ऐप्लिकेशन को फिर से डिप्लॉय करने के लिए, यह तरीका अपनाएं:
- अगर
lib
फ़ोल्डर मौजूद है, तो उसे मिटाएं औरlib
को फिर से पॉप्युलेट करने के लिए,pip install -t lib -r requirements.txt
को चलाएं. अगर आपने Python 2 और 3 दोनों इंस्टॉल किए हैं, तो आपको इसके बजायpip2
कमांड का इस्तेमाल करना पड़ सकता है. - पक्का करें कि आपने
gcloud
कमांड-लाइन टूल इंस्टॉल किया हो और उसे शुरू किया हो. साथ ही, इसके इस्तेमाल की समीक्षा की हो. - अगर आपको हर
gcloud
निर्देश के साथ अपनाPROJECT_ID
डालना नहीं है, तो अपने क्लाउड प्रोजेक्ट कोgcloud config set project
PROJECT_ID
के साथ सेट करें. gcloud app deploy
के साथ सैंपल ऐप्लिकेशन डिप्लॉय करें- पुष्टि करें कि मॉड्यूल 1 ऐप्लिकेशन उम्मीद के मुताबिक काम करता है. हालांकि, हाल ही में हुई विज़िट की जानकारी नहीं दी गई है. इसकी जानकारी नीचे दी गई है
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
फ़ाइल पर कॉन्फ़िगरेशन के बदलाव लागू करने के लिए, यह तरीका अपनाएं:
runtime
डायरेक्टिव को, काम करने वाले Python 3 रिलीज़ से बदलें; उदाहरण के लिए, Python 3.10 के लिएpython310
तय करें.threadsafe
औरapi_version
, दोनों डायरेक्टिव को मिटा दें, क्योंकि इनमें से किसी का भी इस्तेमाल Python 3 में नहीं किया जाता.handlers
सेक्शन को पूरी तरह मिटा दें, क्योंकि इस ऐप्लिकेशन में सिर्फ़ स्क्रिप्ट हैंडलर हैं. अगर आपके ऐप्लिकेशन में स्टैटिक फ़ाइल हैंडलर हैं, तो उन्हेंhandlers
में वैसे ही रहने दें.- Python 3 रनटाइम, पहले से मौजूद तीसरे पक्ष की लाइब्रेरी के साथ काम नहीं करता, जैसे कि Python 2 रनटाइम. अगर आपके ऐप्लिकेशन में
app.yaml
मेंlibraries
सेक्शन है, तो पूरा सेक्शन मिटाएं. (ज़रूरी पैकेज को सिर्फ़requirements.txt
में लिस्ट करना ज़रूरी है. जैसे, ऐसी लाइब्रेरी जो पहले से मौजूद नहीं हैं.) हमारे सैंपल ऐप्लिकेशन मेंlibraries
सेक्शन नहीं है. इसलिए, अगले चरण पर जाएं. - इसका इस्तेमाल करने के लिए,
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 ऐप्लिकेशन से मेल खाना चाहिए:
फ़ाइनल नोट
- मॉड्यूल 1b फ़ोल्डर (FINISH) में मौजूद सामग्री की तुलना करें. अगर आपने इस प्रक्रिया में कोई गलती की है, तो इसे अपनी ज़रूरत के मुताबिक बदलें.
- अगर आपका ऐप्लिकेशन अब भी
webapp2
का इस्तेमाल करता है, तो इस पेज पर मौजूद मॉड्यूल 1bmain.py
के साथ मॉड्यूल 0main.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
" अगर आपका ऐप्लिकेशन अमेरिका में होस्ट किया जाता है.
दूसरी ओर, अगर आपको इस ऐप्लिकेशन या इससे जुड़े दूसरे माइग्रेशन कोडलैब का इस्तेमाल नहीं करना है और सब कुछ पूरी तरह से मिटाना है, तो अपना प्रोजेक्ट बंद कर दें.
इस कोडलैब के लिए खास
नीचे दी गई सेवाएं, इस कोडलैब के लिए यूनीक हैं. ज़्यादा जानकारी के लिए हर प्रॉडक्ट के दस्तावेज़ देखें:
- App Engine Datastore सेवा, Cloud Datastore (Datastore मोड में Cloud Firestore) उपलब्ध कराती है. इसमें एक फ़्री टियर भी है; ज़्यादा जानकारी के लिए, इसके शुल्क की जानकारी देने वाला पेज देखें.
अगले चरण
यहां से जाने के लिए कई दिशा निर्देश हैं:
- बंडल की गई सेवाओं का इस्तेमाल करके कोड अपडेट करना और कोड में ज़्यादा बदलाव करना ज़रूरी है
- बंडल की गई सेवाओं से Cloud स्टैंडअलोन प्रॉडक्ट पर माइग्रेट करना
- App Engine से बिना सर्वर वाले किसी दूसरे प्लैटफ़ॉर्म पर माइग्रेट करें
Blobstore, मेल, और स्थगित जैसी बंडल की गई सेवाओं को ऐक्सेस करने के लिए, कोड में ज़्यादा बदलाव करने होंगे. App Engine की लेगसी बंडल सेवाओं को बंद करने पर फ़ोकस करने वाले माइग्रेशन मॉड्यूल में ये शामिल हैं:
- मॉड्यूल 2: App Engine NDB से Cloud NDB
- मॉड्यूल 7-9: App Engine टास्क सूची (पुश टास्क) से क्लाउड टास्क
- मॉड्यूल 12-13: App Engine Memcache को Cloud Memorystore
- मॉड्यूल 15-16: App Engine Blobstore से Cloud Storage
- मॉड्यूल 18-19: App Engine टास्क सूची (टास्क पुल करना) से Cloud Pub/Sub
Google Cloud में, अब सिर्फ़ बिना सर्वर वाला प्लैटफ़ॉर्म App Engine है. अगर आपके पास कोई छोटा App Engine ऐप्लिकेशन है या कोई ऐसा ऐप्लिकेशन है जिसमें सीमित सुविधाएं हैं और आपको उसे स्टैंडअलोन माइक्रोसर्विस में बदलना है या किसी मोनोलिथिक ऐप्लिकेशन को फिर से इस्तेमाल किए जा सकने वाले कई कॉम्पोनेंट में बांटना है, तो Cloud Functions का इस्तेमाल करने के बारे में सोचें. अगर कंटेनराइज़ेशन आपके ऐप्लिकेशन डेवलपमेंट वर्कफ़्लो का हिस्सा बन गया है, तो खास तौर पर अगर उसमें CI/CD (लगातार इंटिग्रेशन/लगातार डिलीवरी या डिप्लॉयमेंट) पाइपलाइन शामिल है, तो Cloud Run पर माइग्रेट करें. इन स्थितियों की जानकारी यहां दिए गए मॉड्यूल में दी गई है:
- App Engine से Cloud Functions पर माइग्रेट करना: मॉड्यूल 11 देखें
- App Engine से Cloud Run पर माइग्रेट करना: अपने ऐप्लिकेशन को Docker के साथ कंटेनर बनाने के लिए, मॉड्यूल 4 देखें. इसके अलावा, कंटेनर, Docker नॉलेज या
Dockerfile
s के बिना ऐसा करने के लिए मॉड्यूल 5 पर जाएं
बिना सर्वर वाले किसी दूसरे प्लैटफ़ॉर्म पर स्विच करना ज़रूरी नहीं है. हमारा सुझाव है कि कोई भी बदलाव करने से पहले, अपने ऐप्लिकेशन और इस्तेमाल के उदाहरण देखने के लिए सबसे सही विकल्प चुनें.
आप आगे चाहे किसी माइग्रेशन मॉड्यूल पर जाएं, सर्वरलेस माइग्रेशन स्टेशन का पूरा कॉन्टेंट (कोडलैब, वीडियो, सोर्स कोड [जब उपलब्ध हो]) उसके ओपन सोर्स रेपो से ऐक्सेस किया जा सकता है. डेटा स्टोर करने की जगह के README
में, यह भी बताया गया है कि किस माइग्रेशन पर विचार करना चाहिए. साथ ही, इसमें किसी "ऑर्डर" के बारे में भी बताया गया है. में तय किया गया है.
7. अन्य संसाधन
डेवलपर के लिए, इस या इससे जुड़े माइग्रेशन मॉड्यूल के साथ-साथ इससे जुड़े अन्य प्रॉडक्ट को एक्सप्लोर करने के लिए, यहां कुछ अतिरिक्त संसाधन दिए गए हैं. इसमें ऐसी जगहें शामिल हैं जहां इस कॉन्टेंट पर सुझाव, शिकायत या राय दी जा सकती है. साथ ही, कोड के लिंक और दस्तावेज़ के ऐसे अलग-अलग हिस्से शामिल हैं जो आपके काम आ सकते हैं.
कोडलैब (कोड बनाना सीखना) से जुड़ी समस्याएं/सुझाव/राय/शिकायत
अगर आपको इस कोडलैब के साथ कोई समस्या मिलती है, तो कृपया आवेदन करने से पहले अपनी समस्या का पता लगाएं. खोजने और नई समस्याएं बनाने के लिए लिंक:
माइग्रेशन के लिए संसाधन
यहां दी गई टेबल में, मॉड्यूल 1 (START) और मॉड्यूल 1b (FINISH) के रेपो फ़ोल्डर के लिंक दिए गए हैं. उन्हें सभी App Engine कोडलैब माइग्रेशन के लिए रेपो से भी ऐक्सेस किया जा सकता है.
Codelab | Python 2 | Python 3 |
लागू नहीं | ||
मॉड्यूल 17 (यह कोडलैब) | लागू नहीं | कोड (mod1b-flask) |
ऑनलाइन संसाधन
नीचे कुछ ऑनलाइन संसाधन दिए गए हैं, जो इस ट्यूटोरियल के लिए काम के हो सकते हैं:
App Engine बंडल की गई सेवाएं
- Python 3 के अगली-पीढ़ी की टेक्नोलॉजी वाले रनटाइम में बंडल की गई सेवाओं को ऐक्सेस करना
- मॉड्यूल 0 ऐप्लिकेशन (Python 2) बनाम मॉड्यूल 1b ऐप्लिकेशन (Python 3) की साथ मिलकर तुलना
- App Engine SDK टूल के वेब फ़्रेमवर्क के WSGI ऑब्जेक्ट रैपर के सैंपल
- अगली-पीढ़ी की टेक्नोलॉजी के रनटाइम में, App Engine की बंडल की गई सेवाओं को लॉन्च करने की सुविधा (2021)
App Engine के सामान्य दस्तावेज़
- App Engine दस्तावेज़
- Python 2 App Engine (स्टैंडर्ड एनवायरमेंट) रनटाइम
- Python 2 App Engine पर App Engine की बिल्ट-इन लाइब्रेरी का इस्तेमाल करना
- Python 3 App Engine (स्टैंडर्ड एनवायरमेंट) रनटाइम
- Python 2 और Python 2 के बीच अंतर तीन App Engine (स्टैंडर्ड एनवायरमेंट) रनटाइम
- Python 2 से 3 App Engine (स्टैंडर्ड एनवायरमेंट) माइग्रेशन गाइड
- App Engine की कीमत और कोटा की जानकारी
- दूसरी पीढ़ी का App Engine प्लैटफ़ॉर्म लॉन्च (2018)
- लेगसी रनटाइम के लिए लंबे समय तक सहायता
- दस्तावेज़ माइग्रेशन के सैंपल का रेपो
- समुदाय के योगदान से किए गए माइग्रेशन सैंपल रेपो
क्लाउड से जुड़ी अन्य जानकारी
- Google Cloud Platform पर Python
- Google Cloud Python क्लाइंट लाइब्रेरी
- Google Cloud "हमेशा मुफ़्त" टियर
- Google Cloud SDK (
gcloud
कमांड-लाइन टूल) - Google Cloud के सभी दस्तावेज़
वीडियो
- सर्वर के बिना माइग्रेशन स्टेशन
- सर्वर के बिना कैंपेन
- Google Cloud Tech की सदस्यता लें
- Google Developers की सदस्यता लें
लाइसेंस
इस काम को क्रिएटिव कॉमंस एट्रिब्यूशन 2.0 जेनरिक लाइसेंस के तहत लाइसेंस मिला है.