Cloud Functions का इस्तेमाल शुरू करना

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

Cloud-Functions.png

Cloud Functions की मदद से, एक ही मकसद के लिए आसान फ़ंक्शन लिखे जाते हैं. ये फ़ंक्शन, आपके क्लाउड इंफ़्रास्ट्रक्चर और सेवाओं से निकलने वाले इवेंट से जुड़े होते हैं. जब मॉनिटर किया जा रहा कोई इवेंट ट्रिगर होता है, तब आपकी Cloud फ़ंक्शन सेवा ट्रिगर होती है. आपका कोड, पूरी तरह से मैनेज किए गए एनवायरमेंट में काम करता है. आपको किसी इंफ़्रास्ट्रक्चर को प्रोविज़न करने या सर्वर को मैनेज करने की चिंता करने की ज़रूरत नहीं है.

फ़िलहाल, Cloud Functions को Javascript, Python या Go में लिखा जा सकता है. Javascript के मामले में, ये Google Cloud Platform पर Node.js एनवायरमेंट में काम करते हैं. अपने Cloud फ़ंक्शन को किसी भी स्टैंडर्ड Node.js रनटाइम में चलाया जा सकता है. इससे पोर्टेबिलिटी और लोकल टेस्टिंग, दोनों ही आसानी से की जा सकती हैं.

क्लाउड सेवाओं को कनेक्ट और एक्सटेंड करना

Cloud Functions, लॉजिक की एक कनेक्टेड लेयर उपलब्ध कराता है. इसकी मदद से, क्लाउड सेवाओं को कनेक्ट करने और उन्हें बढ़ाने के लिए कोड लिखा जा सकता है. Cloud Storage में अपलोड की गई किसी फ़ाइल, लॉग में हुए बदलाव या Cloud Pub/Sub के किसी विषय पर मिले मैसेज को सुनें और उसका जवाब दें. Cloud Functions, मौजूदा क्लाउड सेवाओं को बेहतर बनाता है. साथ ही, इससे आपको किसी भी प्रोग्रामिंग लॉजिक के साथ, इस्तेमाल के बढ़ते मामलों को हल करने में मदद मिलती है. Cloud Functions के पास Google सेवा खाते के क्रेडेंशियल का ऐक्सेस होता है. इसलिए, Google Cloud Platform की ज़्यादातर सेवाओं के साथ इनकी पुष्टि आसानी से हो जाती है. जैसे, Datastore, Cloud Spanner, Cloud Translation API, Cloud Vision API, और कई अन्य सेवाएं.

907ffb96feada611.png

इवेंट और ट्रिगर

क्लाउड इवेंट, आपके क्लाउड एनवायरमेंट में होने वाली गतिविधियां होती हैं.जैसे, डेटाबेस में डेटा में बदलाव, स्टोरेज सिस्टम में जोड़ी गई फ़ाइलें या नया वर्चुअल मशीन इंस्टेंस बनाया जाना.

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

Serverless

Cloud Functions की मदद से, सर्वर मैनेज करने, सॉफ़्टवेयर कॉन्फ़िगर करने, फ़्रेमवर्क अपडेट करने, और ऑपरेटिंग सिस्टम को पैच करने का काम आसान हो जाता है. सॉफ़्टवेयर और इन्फ़्रास्ट्रक्चर को पूरी तरह से Google मैनेज करता है, ताकि आपको सिर्फ़ कोड जोड़ना पड़े. इसके अलावा, इवेंट के जवाब में संसाधनों का प्रावधान अपने-आप होता है. इसका मतलब है कि फ़ंक्शन को एक दिन में कुछ बार से लेकर लाखों बार तक इस्तेमाल किया जा सकता है. इसके लिए, आपको कुछ भी करने की ज़रूरत नहीं है.

इस्तेमाल के उदाहरण

एसिंक्रोनस वर्कलोड, जैसे कि लाइटवेट ईटीएल या क्लाउड ऑटोमेशन (जैसे, ऐप्लिकेशन बिल्ड ट्रिगर करना) के लिए अब अपने सर्वर और डेवलपर की ज़रूरत नहीं होती. आपको सिर्फ़ उस इवेंट से जुड़ा Cloud फ़ंक्शन डिप्लॉय करना होता है जिसके लिए आपको सूचना चाहिए.

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

इस हैंड्स-ऑन लैब में, Google Cloud Console का इस्तेमाल करके, क्लाउड फ़ंक्शन बनाने, डिप्लॉय करने, और उसकी जांच करने का तरीका बताया गया है. आपको :

  • क्लाउड फ़ंक्शन बनाना
  • फ़ंक्शन को लागू करना और उसकी जांच करना
  • लॉग देखें

2. सेटअप और ज़रूरी शर्तें

अपने हिसाब से एनवायरमेंट सेट अप करना

  1. Cloud Console में साइन इन करें. इसके बाद, नया प्रोजेक्ट बनाएं या किसी मौजूदा प्रोजेक्ट का फिर से इस्तेमाल करें. (अगर आपके पास पहले से Gmail या G Suite खाता नहीं है, तो आपको एक खाता बनाना होगा.)

dMbN6g9RawQj_VXCSYpdYncY-DbaRzr2GbnwoV7jFf1u3avxJtmGPmKpMYgiaMH-qu80a_NJ9p2IIXFppYk8x3wyymZXavjglNLJJhuXieCem56H30hwXtd8PvXGpXJO9gEUDu3cZwci9Oe6PgnbNuSYlMyvbXF1JdQyiHoEgnhl4PlV_MFagm2ppzhueRkqX4eLjJllZco_2zCp0V0bpTupUSKji9KkQyWqj11pqit1K1faS1V6aFxLGQdkuzGp4rsQTan7F01iePL5DtqQ8-tA_Lheyo8SscAVKrGii2coplQp2_D1Iosb2ViABY0UUO1A8cimXUu6Wf1R9zJIRExL5OB2j946aIiFtyKTzxDcNnuznmR45vZ2HMoK3o67jxuoUJCAnqvEX6NgPGFjCVNgASc-lg

प्रोजेक्ट आईडी याद रखें. यह सभी Google Cloud प्रोजेक्ट के लिए एक यूनीक नाम होता है. ऊपर दिया गया नाम पहले ही इस्तेमाल किया जा चुका है. इसलिए, यह आपके लिए काम नहीं करेगा. माफ़ करें! इस कोडलैब में इसे बाद में PROJECT_ID के तौर पर दिखाया जाएगा.

  1. इसके बाद, Google Cloud संसाधनों का इस्तेमाल करने के लिए, आपको Cloud Console में बिलिंग चालू करनी होगी.

इस कोडलैब को पूरा करने में ज़्यादा खर्च नहीं आएगा. "सफ़ाई करना" सेक्शन में दिए गए निर्देशों का पालन करना न भूलें. इसमें आपको संसाधनों को बंद करने का तरीका बताया गया है, ताकि इस ट्यूटोरियल के बाद आपको बिलिंग न करनी पड़े. Google Cloud के नए उपयोगकर्ता, 300 डॉलर का क्रेडिट मुफ़्त में आज़माने के प्रोग्राम के लिए ज़रूरी शर्तें पूरी करते हैं.

Google Cloud Shell

Google Cloud और Cloud Functions को अपने लैपटॉप से रिमोटली ऑपरेट किया जा सकता है. हालांकि, इस कोडलैब में हम Google Cloud Shell का इस्तेमाल करेंगे. यह क्लाउड में चलने वाला कमांड लाइन एनवायरमेंट है.

यह Debian पर आधारित वर्चुअल मशीन है. इसमें आपको डेवलपमेंट के लिए ज़रूरी सभी टूल मिलेंगे. यह 5 जीबी की होम डायरेक्ट्री उपलब्ध कराता है और Google Cloud में चलता है. इससे नेटवर्क की परफ़ॉर्मेंस और पुष्टि करने की प्रोसेस बेहतर होती है. इसका मतलब है कि इस कोडलैब के लिए, आपको सिर्फ़ एक ब्राउज़र की ज़रूरत होगी. हां, यह Chromebook पर भी काम करता है.

  1. Cloud Console से Cloud Shell चालू करने के लिए, बस Cloud Shell चालू करें fEbHefbRynwXpq1vj2wJw6Dr17O0np8l-WOekxAZYlZQIORsWQE_xJl-cNhogjATLn-YxLVz8CgLvIW1Ncc0yXKJsfzJGMYgUeLsVB7zSwz7p6ItNgx4tXqQjag7BfWPcZN5kP-X3Q पर क्लिक करें. इसे चालू होने और एनवायरमेंट से कनेक्ट होने में कुछ ही समय लगेगा.

I5aEsuNurCxHoDFjZRZrKBdarPPKPoKuExYpdagmdaOLKe7eig3DAKJitIKyuOpuwmrMAyZhp5AXpmD_k66cBuc1aUnWlJeSfo_aTKPY9aNMurhfegg1CYaE11jdpSTYNNIYARe01AScreen Shot 2017-06-14 at 10.13.43 PM.png

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 के डैशबोर्ड में देखें:

R7chO4PKQfLC3bvFBNZJALLTUiCgyLEq_67ECX7ohs_0ZnSjC7GxDNxWrJJUaoM53LnqABYamrBJhCuXF-J9XBzuUgaz7VvaxNrkP2TAn93Drxccyj2-5zz4AxL-G3hzxZ4PsM5HHQ

Cloud Shell, कुछ एनवायरमेंट वैरिएबल को डिफ़ॉल्ट रूप से भी सेट करता है. ये वैरिएबल, आने वाले समय में कमांड चलाने के दौरान आपके काम आ सकते हैं.

echo $GOOGLE_CLOUD_PROJECT

कमांड का आउटपुट

<PROJECT_ID>
  1. आखिर में, डिफ़ॉल्ट ज़ोन और प्रोजेक्ट कॉन्फ़िगरेशन सेट करें.
gcloud config set compute/zone us-central1-f

आपके पास अलग-अलग ज़ोन चुनने का विकल्प होता है. ज़्यादा जानकारी के लिए, रीजन और ज़ोन देखें.

3. कोई फ़ंक्शन बनाना

इस चरण में, आपको कंसोल का इस्तेमाल करके क्लाउड फ़ंक्शन बनाना है.

  • कंसोल में, नेविगेशन मेन्यू > Cloud Functions पर क्लिक करें.

fe64222954f5f372.png

  • "CREATE FUNCTION" पर क्लिक करें :

7adca9640ca2e5a6.png

  • अपने फ़ंक्शन का नाम GCFunction रखें. साथ ही, अन्य डिफ़ॉल्ट सेटिंग को न बदलें : मेमोरी का बंटवारा, ट्रिगर के तौर पर एचटीटीपी, इनलाइन एडिटर, डिफ़ॉल्ट रनटाइम, और डिफ़ॉल्ट सैंपल कोड.

795f1fedc0f039bb.png

  • "फ़ंक्शन बनाएं" डायलॉग में रहते हुए, फ़ंक्शन को डिप्लॉय करने के लिए सबसे नीचे मौजूद "बनाएं" पर क्लिक करें:

b68c3647b771e6f9.png

'बनाएं' पर क्लिक करने के बाद, कंसोल आपको Cloud Functions की खास जानकारी देने वाले पेज पर रीडायरेक्ट कर देता है.

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

3ec684b1b4906657.png

हो गया! आपका फ़ंक्शन अब लाइव है और इसे एचटीटीपी के ज़रिए ट्रिगर किया जा सकता है.

4. फ़ंक्शन की जांच करना

Cloud Functions की खास जानकारी वाले पेज पर, अपने फ़ंक्शन के लिए मेन्यू दिखाएं. इसके बाद, फ़ंक्शन की जांच करें पर क्लिक करें :

74e310ee6663bb3c.png

ट्रिगर करने वाला इवेंट फ़ील्ड में, ब्रैकेट {} के बीच यह टेक्स्ट डालें और फ़ंक्शन की जांच करें पर क्लिक करें.

Output फ़ील्ड में, आपको यह मैसेज दिखेगा: Success: Hello World!

लॉग फ़ील्ड में, 200 स्टेटस कोड का मतलब है कि अनुरोध पूरा हो गया है. ध्यान दें कि लॉग दिखने में एक मिनट लग सकता है.

a876def9cbf24a45.png

5. फ़ंक्शन के लॉग देखना

Cloud Functions की खास जानकारी वाले पेज पर वापस जाने के लिए, नीले ऐरो पर क्लिक करें :

8917a2bfa4fb9502.png

अपने फ़ंक्शन के लिए मेन्यू दिखाएं और लॉग देखें पर क्लिक करें :

e97e6ec1fc17dfd7.png

यहां लॉग इतिहास का एक उदाहरण दिया गया है :

d91a00cf4457fa84.png

ध्यान दें कि फ़ंक्शन और गंभीरता के हिसाब से लॉग फ़िल्टर किए जा सकते हैं. इसके अलावा, लेबल या कुछ फ़्री-फ़ॉर्म टेक्स्ट के ज़रिए भी खोज की जा सकती है.

आपका ऐप्लिकेशन डिप्लॉय और टेस्ट किया गया हो. साथ ही, आपको लॉग देखने का ऐक्सेस मिला हो.

6. संसाधन हटाना

आपको रिसॉर्स को क्लीन अप करने की ज़रूरत नहीं है, क्योंकि यह सर्वरलेस कंप्यूटिंग है. इसका मतलब है कि अगर कोई अनुरोध नहीं आता है, तो रिसॉर्स का इस्तेमाल नहीं किया जाएगा. साथ ही, इसके लिए कोई शुल्क नहीं लिया जाएगा. इसलिए, अगर आपके फ़ंक्शन को कोई ट्रैफ़िक नहीं मिल रहा है, तो आपसे कोई शुल्क नहीं लिया जाएगा. इसके अलावा, हर महीने Cloud फ़ंक्शन के पहले 20 लाख अनुरोधों के लिए कोई शुल्क नहीं लिया जाता. ज़्यादा जानकारी के लिए, कीमत वाला पेज देखें.

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

4fe11e1b41b32ba2.png

7. आगे क्या करना है

Cloud Functions में आपके लिए और भी बहुत कुछ है! अन्य कोडलैब और प्रॉडक्ट पेज देखें. साथ ही, इसके दस्तावेज़ देखें.

आपको इन बातों का भी ध्यान रखना चाहिए :