1. खास जानकारी
कोडलैब की इस सीरीज़ में, Google App Engine (स्टैंडर्ड) डेवलपर को अपने ऐप्लिकेशन को बेहतर बनाने में मदद मिलेगी. इसके लिए, उन्हें माइग्रेशन की सीरीज़ के बारे में जानकारी दी जाएगी. ये कोडलैब, डेवलपर अपनी सुविधा के हिसाब से कभी भी ऐक्सेस कर सकते हैं. साथ ही, इनमें प्रैक्टिकल ट्यूटोरियल भी शामिल हैं. इस तरह के ज़्यादातर माइग्रेशन में, ओरिजनल रनटाइम बंडल की गई सेवाओं से दूर जाना शामिल है. ऐसा इसलिए, क्योंकि अगली जनरेशन के रनटाइम ज़्यादा फ़्लेक्सिबल होते हैं. इससे उपयोगकर्ताओं को सेवा के ज़्यादा विकल्प मिलते हैं. ऐप्लिकेशन को आधुनिक बनाने का एक और तरीका है, उसे नए प्रॉडक्ट पर अपग्रेड करना. इस कोडलैब में इसी के बारे में बताया गया है.
App Engine के ऐसे उपयोगकर्ता जो Cloud NDB या Cloud Datastore क्लाइंट लाइब्रेरी का इस्तेमाल करके Datastore को ऐक्सेस करते हैं उन्हें कुछ भी करने की ज़रूरत नहीं है. उन्हें आगे माइग्रेट करने की ज़रूरत नहीं है. हालांकि, Cloud Firestore, Firebase रीयल-टाइम डेटाबेस की सुविधाओं के साथ, सबसे नया, ज़रूरत के हिसाब से बढ़ाया जा सकने वाला, और NoSQL डेटास्टोर है.
अगर आप एक डेवलपर हैं और आपको Firestore की सुविधाओं का फ़ायदा पाने के लिए इसका इस्तेमाल करना है या आपको कम से कम यह जानने में दिलचस्पी है कि माइग्रेशन में क्या-क्या शामिल है, तो आप सही जगह पर हैं. इस ट्यूटोरियल में, Cloud Datastore का इस्तेमाल करने वाले App Engine ऐप्लिकेशन को Cloud Firestore पर माइग्रेट करने का तरीका बताया गया है.
आपको इनके बारे में जानकारी मिलेगी
- Datastore और Firestore के बीच के अंतर को पहचानना
- Cloud Datastore से Cloud Firestore पर माइग्रेट करना
आपको इन चीज़ों की ज़रूरत होगी
- Google Cloud Platform प्रोजेक्ट जिसमें ये शामिल हों:
- Python की बुनियादी जानकारी
- Linux की सामान्य कमांड के बारे में जानकारी होना
- App Engine ऐप्लिकेशन डेवलप और डिप्लॉय करने की बुनियादी जानकारी
- हमारा सुझाव है कि आप इस मॉड्यूल (मॉड्यूल 6) को शुरू करने से पहले, मॉड्यूल 3 कोडलैब पूरा करें. इसमें इसे Python 3 में पोर्ट करना भी शामिल है.
- Module 3 Cloud Datastore Python 3 App Engine ऐप्लिकेशन काम कर रहा हो.
सर्वे
इस कोडलैब का इस्तेमाल कैसे किया जाएगा?
2. बैकग्राउंड
App Engine का Datastore 2013 में एक अलग प्रॉडक्ट बन गया, Google Cloud Datastore. अब इसे App Engine के बाहर के डेवलपर भी ऐक्सेस कर सकते हैं. इसके अगले साल, Google ने Firebase को खरीद लिया. उस समय, इसे रीयल-टाइम डेटाबेस के लिए जाना जाता था.
अगले कुछ सालों में, Firebase और Cloud Datastore की टीमों ने Firebase की कुछ सुविधाओं को Datastore में इंटिग्रेट करने पर काम किया. इस वजह से, 2017 में Cloud Datastore की अगली जनरेशन रिलीज़ की गई. Firebase की कुछ सुविधाओं को शामिल करने के लिए, इसे Cloud Firestore के तौर पर रीब्रैंड किया गया.
Cloud Firestore, Google Cloud प्रोजेक्ट के लिए डिफ़ॉल्ट NoSQL स्टोरेज सिस्टम बन गया. नए ऐप्लिकेशन, Cloud Firestore का इस्तेमाल नेटिव तौर पर कर सकते हैं. वहीं, मौजूदा Datastore डेटाबेस को पर्दे के पीछे Firestore में बदल दिया गया था. अब ये "Datastore मोड में Firestore" के तौर पर काम करते हैं, ताकि Datastore के साथ काम करने की सुविधा बनी रहे. इसलिए, ऐप्लिकेशन सिर्फ़ एक मोड में Cloud Firestore का इस्तेमाल कर सकते हैं. साथ ही, एक बार सेट करने के बाद, इसे बदला नहीं जा सकता.
फ़िलहाल, जब उपयोगकर्ता नए प्रोजेक्ट बनाते हैं और NoSQL सलूशन चुनते हैं, तो उन्हें Datastore मोड में Firestore या नेटिव मोड में Firestore में से किसी एक को चुनने के लिए कहा जाता है. उपयोगकर्ता, Datastore की इकाइयां जोड़ने के बाद Firestore पर स्विच नहीं कर सकते. इसी तरह, Firestore नेटिव मोड चुनने के बाद, वे Datastore (यानी कि Datastore मोड में Firestore) पर वापस नहीं जा सकते. ज़्यादा जानकारी के लिए, दस्तावेज़ में Datastore मोड में Cloud Firestore या नेटिव Firestore मोड में से किसी एक को चुनने के बारे में जानकारी देने वाला पेज पढ़ें. किसी ऐप्लिकेशन को Firestore पर माइग्रेट करने के लिए, एक नया प्रोजेक्ट बनाना होगा. इसके बाद, Datastore को एक्सपोर्ट करके Firestore में इंपोर्ट करना होगा. इस ट्यूटोरियल का मकसद, डेवलपर को Cloud Datastore और Cloud Firestore के इस्तेमाल के बीच के अंतर के बारे में जानकारी देना है.
हम नहीं चाहते कि उपयोगकर्ता यह माइग्रेशन करें. इसलिए, यह माइग्रेशन वैकल्पिक है. Cloud Firestore का नेटिव तौर पर इस्तेमाल करने के कई फ़ायदे हैं. जैसे, क्लाइंट की पुष्टि करना, Firebase के नियमों को इंटिग्रेट करना, और Firebase रीयल-टाइम डेटाबेस का इस्तेमाल करना. हालांकि, माइग्रेट करने के चरण "मुश्किल" हैं:
- आपको अपने मौजूदा ऐप्लिकेशन के प्रोजेक्ट से अलग प्रोजेक्ट का इस्तेमाल करना होगा.
- जिस प्रोजेक्ट में किसी ऐप्लिकेशन ने Datastore इकाइयां जोड़ी हैं उसे नेटिव मोड में Firestore पर स्विच नहीं किया जा सकता
- इसी तरह, नेटिव मोड में Firestore का इस्तेमाल करने वाले प्रोजेक्ट को Datastore मोड में Firestore पर वापस नहीं लाया जा सकता.
- ऐसा कोई माइग्रेशन टूल नहीं है जो डेटा को एक प्रोजेक्ट से दूसरे प्रोजेक्ट में स्ट्रीम कर सके.
- Datastore की कुछ ज़रूरी सुविधाएं, Firestore में उपलब्ध नहीं हैं. इनमें नेमस्पेस और ज़्यादा राइट थ्रूपुट (>10 हज़ार/सेकंड) शामिल हैं.
- एक्सपोर्ट और इंपोर्ट करने वाले टूल "बेहद सामान्य" हैं. साथ ही, ये "सभी या कोई नहीं" के सिद्धांत पर काम करते हैं.
- अगर आपके ऐप्लिकेशन में कई Datastore इकाइयां हैं, तो उन्हें एक्सपोर्ट करने और Firestore में इंपोर्ट करने में कई घंटे लग सकते हैं.
- इस दौरान, आपका ऐप्लिकेशन/सेवा डेटा को लिख/अपडेट नहीं कर पाएगी.
- माइग्रेशन की गतिविधियों को सामान्य इस्तेमाल में गिना जाता है. लागत कम करने के लिए, आपको इसे रोज़ के कोटे के हिसाब से बांटना चाहिए.
- आपकी नई सेवा किसी दूसरे प्रोजेक्ट में चलती है. इसलिए, डीएनएस अपडेट को लागू होने में कुछ समय लगेगा.
- Datastore और Firestore के डेटा मॉडल एक जैसे होते हैं, लेकिन इनमें कुछ अंतर होता है. इसलिए, माइग्रेट करने के लिए यह अपडेट करना ज़रूरी है कि ऐप्लिकेशन/सेवा कैसे काम करती है
- Datastore की ऐनसेस्टर क्वेरी अब Firestore की कलेक्शन क्वेरी (डिफ़ॉल्ट) हैं
- Datastore से ब्रॉड टाइप की क्वेरी, Firestore की कलेक्शन ग्रुप क्वेरी होती हैं
- इंडेक्स और हैंडलिंग अलग-अलग होती है वगैरह.
अगर आपको माइग्रेशन के लिए किसी सामान्य ऐप्लिकेशन पर विचार करना है, ऐसे माइग्रेशन को सिम्युलेट करने की तैयारी करनी है या सिर्फ़ Datastore बनाम Firestore के बारे में जानना है, तो कृपया आगे बढ़ें!
Python 2 के उपयोगकर्ताओं के लिए: यह माइग्रेशन कोडलैब सिर्फ़ Python 3 में उपलब्ध है. हालांकि, Cloud Firestore 2.x के साथ भी काम करता है. इसलिए, उपयोगकर्ता इसके इस्तेमाल में अंतर कर सकते हैं. उदाहरण के लिए, Firestore रिकॉर्ड, बाइट स्ट्रिंग के बजाय यूनिकोड स्ट्रिंग का इस्तेमाल करते हैं. इसलिए, Python 2 स्ट्रिंग लिटरल के लिए u'' लीडिंग इंडिकेटर ज़रूरी है. इसका मतलब है कि 2.x store_visit() फ़ंक्शन ऐसा दिखेगा:
def store_visit(remote_addr, user_agent):
doc_ref = fs_client.collection(u'Visit')
doc_ref.add({
u'timestamp': datetime.now(),
u'visitor': u'{}: {}'.format(remote_addr, user_agent),
})
इसके अलावा, क्लाइंट लाइब्रेरी को इसी तरह काम करना चाहिए. एक और समस्या यह है कि Cloud Firestore की 2.x लाइब्रेरी को डेवलपमेंट के हिसाब से "फ़्रीज़" कर दिया गया है. इसलिए, ज़्यादा/नई सुविधाएं सिर्फ़ Firestore की 3.x क्लाइंट लाइब्रेरी में उपलब्ध होंगी.
इस माइग्रेशन को पूरा करने के लिए, इस ट्यूटोरियल में दिए गए मुख्य चरण ये हैं:
- सेटअप/प्रीवर्क
- Cloud Firestore लाइब्रेरी जोड़ना
- ऐप्लिकेशन की फ़ाइलें अपडेट करना
3. सेटअप/प्रीवर्क
ट्यूटोरियल के मुख्य हिस्से को शुरू करने से पहले, आइए हम अपना प्रोजेक्ट सेट अप करें, कोड पाएं, और फिर बेसलाइन ऐप्लिकेशन को डिप्लॉय करें. इससे हमें पता चलेगा कि हमने काम करने वाले कोड से शुरुआत की है.
1. प्रोजेक्ट सेट अप करना
हमारा सुझाव है कि आप उसी प्रोजेक्ट का फिर से इस्तेमाल करें जिसका इस्तेमाल आपने तीसरे मॉड्यूल के कोडलैब को पूरा करने के लिए किया था. इसके अलावा, एक नया प्रोजेक्ट बनाया जा सकता है या किसी मौजूदा प्रोजेक्ट का फिर से इस्तेमाल किया जा सकता है. पक्का करें कि प्रोजेक्ट में, बिलिंग के लिए ऐक्टिव खाता हो और App Engine (ऐप्लिकेशन) चालू हो.
2. बेसलाइन सैंपल ऐप्लिकेशन पाना
इस कोडलैब के लिए, यह ज़रूरी है कि आपके पास मॉड्यूल 3 का सैंपल ऐप्लिकेशन हो. अगर आपके पास यह ऐप्लिकेशन नहीं है, तो यहां आगे बढ़ने से पहले, मॉड्यूल 3 का ट्यूटोरियल (ऊपर दिया गया लिंक) पूरा करें. अगर आपको इस बारे में पहले से पता है, तो सीधे तौर पर नीचे दिए गए मॉड्यूल 3 का कोड इस्तेमाल करना शुरू करें.
चाहे आपने अपना कोड इस्तेमाल किया हो या हमारा, हम मॉड्यूल 3 के कोड से शुरुआत करेंगे. इस छठे मॉड्यूल के कोडलैब में, आपको हर चरण के बारे में बताया गया है. इसे पूरा करने के बाद, यह कोड FINISH पॉइंट पर मौजूद कोड जैसा दिखना चाहिए. (यह ट्यूटोरियल सिर्फ़ Python 3 के लिए उपलब्ध है.)
- शुरू करें: मॉड्यूल 3 का रेपो
- खत्म करें: Module 6 repo
- पूरी रीपो (क्लोन करें या ZIP फ़ाइल डाउनलोड करें)
मॉड्यूल 3 की फ़ाइलों की डायरेक्ट्री (आपकी या हमारी) ऐसी दिखनी चाहिए:
$ ls
README.md main.py templates
app.yaml requirements.txt
3. मॉड्यूल 3 ऐप्लिकेशन को (फिर से) डिप्लॉय करना
अब आपको ये काम करने हैं:
gcloudकमांड-लाइन टूल के बारे में फिर से जानें (अगर ज़रूरी हो)- ज़रूरत पड़ने पर, App Engine पर मॉड्यूल 3 का कोड फिर से डिप्लॉय करें
इन चरणों को पूरा करने और यह पुष्टि करने के बाद कि यह काम कर रहा है, हम इस ट्यूटोरियल में आगे बढ़ेंगे. हम कॉन्फ़िगरेशन फ़ाइलों से शुरुआत करेंगे.
Python 2 की ज़रूरी शर्तें
- पक्का करें कि
app.yamlअब भी तीसरे पक्ष के बंडल किए गए पैकेज:grpcioऔरsetuptoolsको रेफ़रंस करता हो. - पक्का करें कि
appengine_config.pyअब भीpkg_resourcesऔरgoogle.appengine.ext.vendorका इस्तेमाल करता हो, ताकि ऐप्लिकेशन को तीसरे पक्ष के संसाधनों के बारे में बताया जा सके. - अगले सेक्शन में
requirements.txtको अपडेट करने के लिए, आपकोgoogle-cloud-firestore==1.9.0का इस्तेमाल करना होगा. ऐसा इसलिए, क्योंकि यह Python Firestore क्लाइंट लाइब्रेरी का 2.x के साथ काम करने वाला आखिरी वर्शन है.- अगर आपकी
requirements.txtमेंgoogle-cloud-coreके लिए कोई एंट्री है, तो उसे वैसे ही रहने दें. libको मिटाएं औरpip install -t lib -r requirements.txtकी मदद से फिर से इंस्टॉल करें.
- अगर आपकी
4. कॉन्फ़िगरेशन फ़ाइलों को अपडेट करें (Cloud Firestore लाइब्रेरी जोड़ें)
सेटअप के बाद, कॉन्फ़िगरेशन और ऐप्लिकेशन फ़ाइलों को अपडेट करना ज़रूरी है. पहले विकल्प के लिए, कॉन्फ़िगरेशन में सिर्फ़ एक छोटा सा बदलाव करना है. आपको अपनी requirements.txt फ़ाइल में पैकेज बदलना है. इसलिए, आइए अब यह बदलाव करते हैं.
requirements.txt में google-cloud-datastore लाइन को google-cloud-firestore से बदलें, ताकि यह इस तरह दिखे:
Flask==1.1.2
google-cloud-firestore==2.0.2
हमारा सुझाव है कि हर लाइब्रेरी के नए वर्शन का इस्तेमाल करें. ऊपर दिए गए वर्शन नंबर, इस लेख को लिखते समय के हिसाब से नए वर्शन हैं. FINISH repo फ़ोल्डर में मौजूद कोड को ज़्यादा बार अपडेट किया जाता है. इसलिए, हो सकता है कि इसमें नया वर्शन मौजूद हो.
कॉन्फ़िगरेशन में कोई अन्य बदलाव नहीं किया गया है. इसलिए, app.yaml और templates/index.html में कोई बदलाव नहीं होगा.
5. ऐप्लिकेशन की फ़ाइलें अपडेट करना
सिर्फ़ एक ऐप्लिकेशन फ़ाइल, main.py मौजूद है. इसलिए, इस सेक्शन में किए गए सभी बदलाव सिर्फ़ उसी फ़ाइल पर लागू होते हैं.
1. आयात
पैकेज इंपोर्ट करने की सुविधा को datastore से firestore पर स्विच करना एक छोटा बदलाव है:
- BEFORE:
from google.cloud import datastore
- AFTER:
from google.cloud import firestore
2. Firestore का ऐक्सेस
Flask को शुरू करने के बाद, अपना Firestore क्लाइंट बनाएं. ऊपर दिए गए बदलाव की तरह ही, क्लाइंट के शुरू होने के लिए भी बदलाव करें:
- BEFORE:
app = Flask(__name__)
ds_client = datastore.Client()
- AFTER:
app = Flask(__name__)
fs_client = firestore.Client()
Cloud NDB से Cloud Datastore पर माइग्रेट करके, आपने Cloud Firestore पर माइग्रेट करने के लिए ज़रूरी काम पहले ही कर लिया है. Datastore की मदद से, सामान्य प्रॉपर्टी से बनी इकाइयों के तौर पर डेटा रिकॉर्ड बनाए जाते हैं और उन्हें कुंजियों के हिसाब से ग्रुप किया जाता है. Firestore में डेटा रिकॉर्ड, दस्तावेज़ होते हैं. ये की-वैल्यू पेयर से बने होते हैं और इन्हें कलेक्शन में एक साथ ग्रुप किया जाता है. Datastore से माइग्रेट करते समय, आपको इन अंतरों के बारे में सोचना होगा. ऐसा इसलिए, क्योंकि डेटा रिकॉर्ड बनाते समय और उनके लिए क्वेरी करते समय, ये अंतर दिखेंगे. आपके Datastore कोड की जटिलता के आधार पर, आपको अलग-अलग नतीजे मिल सकते हैं.
Datastore के लिए, फ़िल्टर करने और क्रम से लगाने के मानदंड के साथ-साथ, इकाई के टाइप के आधार पर क्वेरी की जाती हैं. Firestore के लिए, डेटा पर क्वेरी करना भी इसी तरह होता है. चलिए, एक उदाहरण देखते हैं. मान लें कि क्वेरी की ये वैल्यू, क्लाइंट (क्रमशः ds_client या fs_client) और इंपोर्ट हैं:
from datetime import datetime
from firestore.Query import DESCENDING
OCT1 = datetime(2020, 10, 1)
LIMIT = 10
Datastore के लिए, आइए 1 अक्टूबर, 2020 के बाद की दस सबसे नई Visit इकाइयों के बारे में क्वेरी करें. इन्हें घटते क्रम में व्यवस्थित किया गया है:
query = ds_client.query(kind='Visit')
query.add_filter('timestamp', '>=', datetime(2020, 10, 1))
query.order = ['-timestamp']
return query.fetch(limit=LIMIT)
Firestore के लिए भी ऐसा ही करें. इसके लिए, Visit collection से यह तरीका अपनाएं:
query = fs_client.collection('Visit')
query.where('timestamp', '>=', datetime(2020, 10, 1))
query.order_by('timestamp', direction=DESCENDING)
return query.limit(LIMIT).stream()
ऐप्लिकेशन के सैंपल की क्वेरी ज़्यादा आसान है. इसमें "WHERE" क्लॉज़ नहीं है. यहां Cloud Datastore का कोड दिया गया है:
- BEFORE:
def store_visit(remote_addr, user_agent):
entity = datastore.Entity(key=ds_client.key('Visit'))
entity.update({
'timestamp': datetime.now(),
'visitor': '{}: {}'.format(remote_addr, user_agent),
})
ds_client.put(entity)
def fetch_visits(limit):
query = ds_client.query(kind='Visit')
query.order = ['-timestamp']
return query.fetch(limit=limit)
Firestore पर माइग्रेट करने पर, आपको नई इकाइयां बनाने का तरीका, दस्तावेज़ बनाने के तरीके जैसा ही लगेगा. साथ ही, क्वेरी भी पहले की तरह ही दिखेंगी.
- AFTER:
def store_visit(remote_addr, user_agent):
doc_ref = fs_client.collection('Visit')
doc_ref.add({
'timestamp': datetime.now(),
'visitor': '{}: {}'.format(remote_addr, user_agent),
})
def fetch_visits(limit):
visits_ref = fs_client.collection('Visit')
visits = (v.to_dict() for v in visits_ref.order_by('timestamp',
direction=firestore.Query.DESCENDING).limit(limit).stream())
return visits
मुख्य फ़ंक्शन root() और index.html टेंप्लेट फ़ाइल में कोई बदलाव नहीं होता. अपने बदलावों की दो बार जांच करें, उन्हें सेव करें, लागू करें, और पुष्टि करें.
6. खास जानकारी/सफ़ाई
ऐप्लिकेशन डिप्लॉय करना
gcloud app deploy की मदद से, अपने ऐप्लिकेशन को फिर से डिप्लॉय करें. साथ ही, पुष्टि करें कि ऐप्लिकेशन काम कर रहा है. आपका कोड अब Module 6 repo में मौजूद कोड से मेल खाना चाहिए. अगर आपको 2.x वर्शन का इस्तेमाल करना है, तो आपका कोड उससे मेल खाना चाहिए.
अगर आपने इस सीरीज़ में, पहले के किसी भी कोडलैब को पूरा किए बिना हिस्सा लिया है, तो ऐप्लिकेशन में कोई बदलाव नहीं होता. यह मुख्य वेब पेज (/) पर आने वाले सभी लोगों को रजिस्टर करता है. साइट पर कई बार जाने के बाद, यह इस तरह दिखता है:

छठे मॉड्यूल को माइग्रेट करने के लिए बधाई. App Engine के डेटा स्टोरेज के लिए, यह माइग्रेशन आखिरी माइग्रेशन हो सकता है. अगर आपने अब तक Cloud Run के लिए अपने ऐप्लिकेशन को कंटेनर में नहीं बदला है, तो माइग्रेट करने के लिए इस विकल्प का इस्तेमाल किया जा सकता है. इसके बारे में ज़्यादा जानने के लिए, यहां दिए गए लिंक पर जाकर मॉड्यूल 4 और 5 के कोडलैब देखें.
ज़रूरी नहीं: साफ़ करना
जब तक आप माइग्रेशन के अगले कोडलैब पर जाने के लिए तैयार नहीं हो जाते, तब तक बिलिंग से बचने के लिए क्या किया जा सकता है? मौजूदा डेवलपर के तौर पर, आपको App Engine की कीमत से जुड़ी जानकारी के बारे में पहले से ही पता होगा.
ज़रूरी नहीं: ऐप्लिकेशन बंद करना
अगर आपको अभी अगले ट्यूटोरियल पर नहीं जाना है, तो शुल्क से बचने के लिए अपने ऐप्लिकेशन को बंद करें. जब आपको अगले कोडलैब पर जाना हो, तब इसे फिर से चालू किया जा सकता है. ऐप्लिकेशन बंद होने पर, उस पर कोई ट्रैफ़िक नहीं आएगा. इसलिए, आपसे कोई शुल्क नहीं लिया जाएगा. हालांकि, अगर Firestore के इस्तेमाल का शुल्क मुफ़्त कोटे से ज़्यादा है, तो आपसे इसका शुल्क लिया जा सकता है. इसलिए, इतना डेटा मिटाएं कि वह सीमा के अंदर आ जाए.
दूसरी ओर, अगर आपको माइग्रेशन जारी नहीं रखना है और आपको सब कुछ पूरी तरह से मिटाना है, तो अपना प्रोजेक्ट बंद करें.
अगले चरण
इस ट्यूटोरियल के अलावा, माइग्रेशन मॉड्यूल के कई अन्य कोडलैब भी उपलब्ध हैं. इनका इस्तेमाल किया जा सकता है:
- मॉड्यूल 7: App Engine की पुश टास्क कतारें (अगर [push] टास्क कतारों का इस्तेमाल किया जाता है, तो यह ज़रूरी है)
- App Engine
taskqueueपुश टास्क को Module 1 ऐप्लिकेशन में जोड़ता है - यह मॉड्यूल, उपयोगकर्ताओं को मॉड्यूल 8 में Cloud Tasks पर माइग्रेट करने के लिए तैयार करता है
- App Engine
- मॉड्यूल 4: Docker का इस्तेमाल करके Cloud Run पर माइग्रेट करना
- Docker की मदद से, अपने ऐप्लिकेशन को कंटेनर में बदलें, ताकि उसे Cloud Run पर चलाया जा सके
- इस माइग्रेशन की मदद से, Python 2 का इस्तेमाल जारी रखा जा सकता है.
- पांचवां मॉड्यूल: Cloud Buildpacks की मदद से Cloud Run पर माइग्रेट करना
- Cloud Buildpacks की मदद से, अपने ऐप्लिकेशन को कंटेनर में बदलें, ताकि उसे Cloud Run पर चलाया जा सके
- आपको Docker, कंटेनर या
Dockerfileके बारे में कुछ भी जानने की ज़रूरत नहीं है. - इसके लिए, आपके ऐप्लिकेशन को पहले ही Python 3 पर माइग्रेट किया गया हो. Buildpacks, Python 2 के साथ काम नहीं करता
7. अन्य संसाधन
App Engine माइग्रेशन मॉड्यूल कोडलैब से जुड़ी समस्याएं/सुझाव/राय
अगर आपको इस कोडलैब में कोई समस्या मिलती है, तो कृपया शिकायत दर्ज करने से पहले अपनी समस्या खोजें. नई समस्याएं खोजने और बनाने के लिए लिंक:
माइग्रेशन के लिए उपलब्ध संसाधन
मॉड्यूल 3 (START) और मॉड्यूल 6 (FINISH) के लिए, रेपो फ़ोल्डर के लिंक यहां दी गई टेबल में देखे जा सकते हैं. इन्हें App Engine के सभी माइग्रेशन के लिए उपलब्ध रिपॉजिटरी से भी ऐक्सेस किया जा सकता है. इसे क्लोन किया जा सकता है या इसकी ZIP फ़ाइल डाउनलोड की जा सकती है.
कोडलैब | Python 2 | Python 3 |
(code) | ||
मॉड्यूल 6 | (लागू नहीं) |
App Engine के संसाधन
इस माइग्रेशन के बारे में ज़्यादा जानकारी के लिए, यहां दिए गए संसाधन देखें:
- Python Cloud Datastore और Cloud Firestore के रेफ़रंस
- Python 3 और GAE के अगली जनरेशन के रनटाइम पर माइग्रेट करना
- सामान्य