1. खास जानकारी
Cloud Functions की मदद से, एक ही मकसद के लिए बनाए गए ऐसे आसान फ़ंक्शन लिखे जा सकते हैं जो आपके क्लाउड इन्फ़्रास्ट्रक्चर और सेवाओं से जनरेट होने वाले इवेंट से जुड़े होते हैं. देखे जा रहे इवेंट के सक्रिय होने पर आपका Cloud फ़ंक्शन ट्रिगर हो जाता है. आपका कोड पूरी तरह से मैनेज किए गए एनवायरमेंट में काम करता है. किसी भी इंफ़्रास्ट्रक्चर का प्रावधान करने या किसी भी सर्वर को मैनेज करने की चिंता करने की ज़रूरत नहीं है.
फ़िलहाल, Cloud Functions को JavaScript, Python या Go में लिखा जा सकता है. JavaScript के मामले में, वे Google Cloud Platform पर Node.js प्लैटफ़ॉर्म पर काम करते हैं. आप अपने Cloud Function को लेकर, उसे किसी भी मानक Node.js रनटाइम में चला सकते हैं. इससे पोर्टेबिलिटी और स्थानीय जांच, दोनों को आसान बना दिया जाता है.
Cloud सेवाएं कनेक्ट करना और उनका दायरा बढ़ाना
Cloud Functions, लॉजिक की एक कनेक्टिव लेयर देता है. इसकी मदद से, क्लाउड सेवाओं को कनेक्ट करने और उनका दायरा बढ़ाने के लिए कोड लिखा जा सकता है. Cloud Storage में अपलोड की गई फ़ाइल, लॉग में किए गए बदलाव या Cloud Pub/Sub के विषय पर आने वाले मैसेज को सुनें और उसका जवाब दें. Cloud Functions, मौजूदा क्लाउड सेवाओं को बेहतर बनाता है. साथ ही, आर्बिट्रेरी प्रोग्रामिंग लॉजिक का इस्तेमाल करके, इस्तेमाल के बढ़ते उदाहरणों को ठीक करने में आपकी मदद करता है. Cloud Functions के पास Google सेवा खाते के क्रेडेंशियल का ऐक्सेस होता है. इसलिए, इनकी पुष्टि Google Cloud Platform की ज़्यादातर सेवाओं, जैसे कि Datastore, Cloud Spanner, Cloud Translation API, Cloud Vision API वगैरह के साथ की जाती है.
इवेंट और ट्रिगर
क्लाउड इवेंट, आपके क्लाउड एनवायरमेंट में होने वाले इवेंट होते हैं.इनमें किसी डेटाबेस के डेटा में बदलाव, स्टोरेज सिस्टम में जोड़ी गई फ़ाइलें या नया वर्चुअल मशीन इंस्टेंस बनने जैसी चीज़ें शामिल हो सकती हैं.
इवेंट होते हैं, फिर चाहे आप उन इवेंट को जवाब देने का विकल्प चुनें या न दें. ट्रिगर का इस्तेमाल करके, किसी इवेंट के लिए रिस्पॉन्स बनाया जाता है. ट्रिगर से यह जानकारी दी जाती है कि किसी खास इवेंट या इवेंट के सेट में आपकी दिलचस्पी है. किसी ट्रिगर के साथ फ़ंक्शन बाइंड करने से, इवेंट कैप्चर करके उन पर कार्रवाई की जा सकती है. ट्रिगर बनाने और उन्हें अपने फ़ंक्शन से जोड़ने के बारे में ज़्यादा जानकारी के लिए, इवेंट और ट्रिगर देखें.
सर्वर के बिना
Cloud Functions, सर्वर मैनेज करने, सॉफ़्टवेयर कॉन्फ़िगर करने, फ़्रेमवर्क अपडेट करने, और ऑपरेटिंग सिस्टम पैच करने के काम को हटा देता है. Google सॉफ़्टवेयर और इन्फ़्रास्ट्रक्चर को पूरी तरह से मैनेज करता है, इसलिए आपको सिर्फ़ कोड जोड़ना होता है. इसके अलावा, इवेंट के जवाब में संसाधनों का प्रावधान अपने-आप हो जाता है. इसका मतलब है कि एक फ़ंक्शन आपके किसी भी काम के बिना भी एक दिन में कुछ बोले जाने वाले शब्दों से लेकर कई लाखों बोले जाने वाले वाक्यों तक पहुंच सकता है.
इस्तेमाल के उदाहरण
लाइटवेट ETL या क्लाउड ऑटोमेशन जैसे एसिंक्रोनस वर्कलोड के लिए, अब ऐप्लिकेशन बिल्ड को ट्रिगर करने के लिए खुद के सर्वर और डेवलपर की ज़रूरत नहीं होगी. आपको बस अपनी पसंद के इवेंट के लिए Cloud Function डिप्लॉय करना है. इसके बाद, आपका काम पूरा हो जाएगा.
क्लाउड फ़ंक्शन की मांग पर उपलब्ध होने की वजह से, यह लाइटवेट एपीआई और वेबहुक के लिए बिलकुल सही है. इसके अलावा, एचटीटीपी फ़ंक्शन डिप्लॉय करते समय, एचटीटीपी एंडपॉइंट के अपने-आप प्रावधान होने का मतलब है कि कुछ दूसरी सेवाओं की तरह किसी भी कॉन्फ़िगरेशन की ज़रूरत नहीं है.
यह हैंड-ऑन लैब आपको Google Cloud Console का इस्तेमाल करके क्लाउड फ़ंक्शन बनाने, डिप्लॉय करने, और टेस्ट करने का तरीका बताती है. ऐसा करने पर :
- क्लाउड फ़ंक्शन बनाएं
- फ़ंक्शन को डिप्लॉय और टेस्ट करें
- लॉग देखें
2. सेटअप और ज़रूरी शर्तें
अपने हिसाब से एनवायरमेंट सेटअप करना
- Cloud Console में साइन इन करें और नया प्रोजेक्ट बनाएं या किसी मौजूदा प्रोजेक्ट का फिर से इस्तेमाल करें. (अगर आपके पास पहले से Gmail या G Suite खाता नहीं है, तो आपको एक खाता बनाना होगा.)
प्रोजेक्ट आईडी याद रखें. यह Google Cloud के सभी प्रोजेक्ट के लिए एक खास नाम होता है (ऊपर दिया गया नाम पहले ही ले लिया गया है और यह आपके लिए काम नहीं करेगा!). बाद में, इस कोडलैब को इस कोडलैब में PROJECT_ID
के तौर पर दिखाया जाएगा.
- इसके बाद, आपको Google Cloud के संसाधनों का इस्तेमाल करने के लिए, Cloud Console में बिलिंग की सुविधा चालू करनी होगी.
इस कोडलैब का इस्तेमाल करने पर, आपको ज़्यादा पैसे नहीं चुकाने होंगे. "साफ़ करना" सेक्शन में दिए गए निर्देशों का पालन करना न भूलें सेक्शन में, संसाधनों को बंद करने का तरीका बताया गया है. इससे इस ट्यूटोरियल के अलावा बिलिंग की सुविधा नहीं मिलेगी. Google Cloud के नए उपयोगकर्ता, 300USD डॉलर के मुफ़्त में आज़माने वाले प्रोग्राम में हिस्सा ले सकते हैं.
Google Cloud शेल
Google Cloud और Cloud Functions, आपके लैपटॉप से कहीं से भी ऑपरेट किए जा सकते हैं. हालांकि, इस कोडलैब में हम Google Cloud Shell का इस्तेमाल करेंगे. यह कमांड लाइन एनवायरमेंट है जो क्लाउड में काम करता है.
Debian आधारित इस वर्चुअल मशीन में ऐसे सभी डेवलपमेंट टूल मौजूद हैं जिनकी आपको ज़रूरत पड़ेगी. यह पांच जीबी की स्थायी होम डायरेक्ट्री उपलब्ध कराता है और Google Cloud में चलता है. यह नेटवर्क की परफ़ॉर्मेंस और पुष्टि करने की प्रोसेस को बेहतर बनाता है. इसका मतलब है कि इस कोडलैब के लिए आपको सिर्फ़ एक ब्राउज़र की ज़रूरत होगी. हां, यह Chromebook पर काम करता है.
- Cloud Console से Cloud Shell को चालू करने के लिए, Cloud Shell को चालू करें पर क्लिक करें. प्रावधान करने और एनवायरमेंट से कनेक्ट होने में कुछ ही समय लगेगा.
Cloud Shell से कनेक्ट करने के बाद, आपको दिखेगा कि आपकी पुष्टि पहले ही हो चुकी है. साथ ही, यह प्रोजेक्ट पहले से ही आपके PROJECT_ID
पर सेट है.
gcloud auth list
कमांड आउटपुट
Credentialed accounts: - <myaccount>@<mydomain>.com (active)
gcloud config list project
कमांड आउटपुट
[core] project = <PROJECT_ID>
अगर किसी कारण से, प्रोजेक्ट सेट नहीं है, तो बस निम्न आदेश जारी करें:
gcloud config set project <PROJECT_ID>
क्या आपको अपना PROJECT_ID
चाहिए? देखें कि आपने सेटअप के चरणों में किस आईडी का इस्तेमाल किया है या इसे Cloud Console के डैशबोर्ड में देखें:
Cloud Shell, डिफ़ॉल्ट रूप से कुछ एनवायरमेंट वैरिएबल सेट करता है. ये वैरिएबल, आने वाले समय में कमांड चलाने के दौरान काम आ सकते हैं.
echo $GOOGLE_CLOUD_PROJECT
कमांड आउटपुट
<PROJECT_ID>
- आखिर में, डिफ़ॉल्ट ज़ोन और प्रोजेक्ट कॉन्फ़िगरेशन सेट करें.
gcloud config set compute/zone us-central1-f
आपके पास कई तरह के ज़ोन चुनने का विकल्प होता है. ज़्यादा जानकारी के लिए, क्षेत्र और ज़ोन.
3. फ़ंक्शन बनाना
इस चरण में, कंसोल का इस्तेमाल करके क्लाउड फ़ंक्शन बनाया जा रहा है.
- कंसोल में, नेविगेशन मेनू > Cloud Functions.
- "फ़ंक्शन बनाएं" पर क्लिक करें :
- अपने फ़ंक्शन को
GCFunction
नाम दें और अन्य डिफ़ॉल्ट वैल्यू रखें : मेमोरी ऐलोकेशन, ट्रिगर के तौर पर एचटीटीपी, इनलाइन एडिटर, डिफ़ॉल्ट रनटाइम, और डिफ़ॉल्ट सैंपल कोड.
- "फ़ंक्शन बनाएं" में रहते हुए डायलॉग बॉक्स में, सबसे नीचे, "बनाएं" पर क्लिक करें इस फ़ंक्शन का इस्तेमाल करें:
'बनाएं' पर क्लिक करने के बाद, कंसोल, Cloud Functions की खास जानकारी देने वाले पेज पर रीडायरेक्ट हो जाता है.
फ़ंक्शन को डिप्लॉय करते समय, इसके बगल में मौजूद आइकॉन छोटा स्पिनर होता है. लागू होने पर, स्पिनर हरे रंग का सही का निशान होगा. अगर कोई समस्या आती है, तो आपको लाल आइकॉन और लॉग के लिंक के साथ सूचना दी जाएगी. इससे आपको गड़बड़ी के बारे में पता चलेगा (शायद आपके कोड में कोई समस्या आ रही हो).
हो गया! आपका फ़ंक्शन अब लाइव है और एचटीटीपी के ज़रिए ट्रिगर किए जाने के लिए तैयार है.
4. फ़ंक्शन की जांच करें
Cloud Functions की खास जानकारी देने वाले पेज पर, अपने फ़ंक्शन के लिए मेन्यू दिखाएं और फ़ंक्शन की जांच करें पर क्लिक करें :
ट्रिगर करने वाले इवेंट फ़ील्ड में, ब्रैकेट {} के बीच में नीचे दिया गया टेक्स्ट डालें और फ़ंक्शन की जांच करें पर क्लिक करें.
आउटपुट फ़ील्ड में, आपको यह मैसेज दिखेगा: Hello World!
लॉग फ़ील्ड में, 200 का स्टेटस कोड सफलता का संकेत देता है. ध्यान दें कि लॉग दिखने में एक मिनट लग सकता है.
5. फ़ंक्शन लॉग देखें
Cloud Functions की खास जानकारी देने वाले पेज पर वापस जाने के लिए नीले तीर पर क्लिक करें :
अपने फ़ंक्शन के लिए मेन्यू दिखाएं और लॉग देखें पर क्लिक करें :
यहां लॉग इतिहास का एक उदाहरण दिया गया है :
ध्यान दें कि लॉग को हर फ़ंक्शन के हिसाब से, गंभीरता के हिसाब से फ़िल्टर किया जा सकता है. साथ ही, किसी लेबल या कुछ फ़्री फ़ॉर्म टेक्स्ट के ज़रिए लॉग को खोजा जा सकता है.
आपका ऐप्लिकेशन डिप्लॉय हो गया है और उसकी जांच हो गई है. साथ ही, आपको लॉग दिख रहे हैं.
6. क्लीनअप के संसाधन
वैसे आपको वाकई में संसाधनों को खाली करने की ज़रूरत नहीं है, क्योंकि यह बिना सर्वर वाली कंप्यूटिंग है : इसे शून्य पर स्केल करने का मतलब है कि लागत को भी शून्य तक बढ़ाना है. इसलिए, अगर आपके फ़ंक्शन को कोई ट्रैफ़िक नहीं मिल रहा है, तो कोई शुल्क नहीं लगेगा. साथ ही, हर महीने 20 लाख Cloud Function को शुरू करने की सुविधा मुफ़्त है. ज़्यादा जानकारी के लिए, कीमत तय करने की जानकारी देने वाला पेज देखें.
अगर आपको फ़ंक्शन मिटाना है, तो बस खास जानकारी देने वाले पेज पर जाएं. इसके बाद, फ़ंक्शन चुनें और मिटाएं पर क्लिक करें :
7. आगे क्या करना है
Cloud Functions पर आपके लिए बहुत सी सुविधाएं हैं! अन्य कोडलैब, प्रॉडक्ट पेज, और इसके दस्तावेज़ देखें.
आपको यह भी देखना चाहिए :
- Cloud Functions कॉल करना (फ़ंक्शन शुरू करने के लिए उपलब्ध ट्रिगर)
- Cloud फ़ंक्शन पर नज़र रखना (लॉग, गड़बड़ी की शिकायत करना वगैरह)
- ... या सर्वरलेस कैटगरी से ज़्यादा कोडलैब