Cloud Run फ़ंक्शन (एचटीटीपी) का इस्तेमाल शुरू करना

1. परिचय

खास जानकारी

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

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

इस कोडलैब में, नीचे दिए गए उदाहरणों में nodejs के सैंपल का इस्तेमाल किया गया है. हालांकि, Cloud Functions के दूसरे जनरेशन के कोड सैंपल का इस्तेमाल अपनी पसंद की भाषा में किया जा सकता है:

आपको क्या सीखने को मिलेगा

  • एचटीटीपी अनुरोध से ट्रिगर होने वाले Cloud Run फ़ंक्शन को डिप्लॉय करने का तरीका

2. एनवायरमेंट वैरिएबल सेट करना और एपीआई चालू करना

gcloud सीएलआई को अपग्रेड करना

सबसे पहले, आपको gcloud सीएलआई का नया वर्शन इंस्टॉल करना होगा. सीएलआई को अपडेट करने के लिए, यह कमांड चलाएं:

gcloud components update

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

ऐसे एनवायरमेंट वैरिएबल सेट किए जा सकते हैं जिनका इस्तेमाल इस कोडलैब में किया जाएगा.

PROJECT_ID=<YOUR_PROJECT_ID>
REGION=<YOUR_REGION, e.g. us-central1>

gcloud config set project $PROJECT_ID
SERVICE_NAME=crf-http-codelab

एपीआई चालू करें

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

gcloud services enable run.googleapis.com \
    cloudbuild.googleapis.com \
    storage.googleapis.com \
    artifactregistry.googleapis.com

3. एचटीटीपी फ़ंक्शन बनाना

सबसे पहले, सोर्स कोड के लिए एक डायरेक्ट्री बनाएं और उस डायरेक्ट्री में cd करें.

mkdir -p cloud-run-functions/$SERVICE_NAME && cd $_

इसके बाद, यहां दिए गए कॉन्टेंट के साथ package.json फ़ाइल बनाएं:

{
    "dependencies": {
        "@google-cloud/functions-framework": "^3.0.0"
    }
}

इसके बाद, यहां दिए गए कॉन्टेंट के साथ index.js फ़ाइल बनाएं:

const functions = require("@google-cloud/functions-framework");

functions.http("helloHttp", (req, res) => {
    res.send(`Hello ${req.query.name || req.body.name || "World"}!`);
});

4. फ़ंक्शन डिप्लॉय करना

अब Cloud Run फ़ंक्शन को डिप्लॉय किया जा सकता है. इसके लिए, यह कमांड चलाएं:

gcloud beta run deploy $SERVICE_NAME \
      --source . \
      --function helloHttp \
      --region us-central1 \
      --no-allow-unauthenticated

यह कमांड, buildpacks का इस्तेमाल करके, आपके फ़ंक्शन के सोर्स कोड को प्रोडक्शन के लिए तैयार कंटेनर इमेज में बदलती है.

कृपया इन बातों का ध्यान रखें:

  • –source फ़्लैग का इस्तेमाल, Cloud Run को यह बताने के लिए किया जाता है कि फ़ंक्शन को कंटेनर आधारित सेवा में बनाया जाए, ताकि उसे चलाया जा सके
  • –function फ़्लैग (नया) का इस्तेमाल, नई सेवा के एंट्रीपॉइंट को सेट करने के लिए किया जाता है. यह एंट्रीपॉइंट, वह फ़ंक्शन सिग्नेचर होता है जिसे आपको लागू करना है
  • (ज़रूरी नहीं) –no-allow-unauthenticated, ताकि आपके फ़ंक्शन को सार्वजनिक तौर पर कॉल न किया जा सके

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

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

# get the Service URL
SERVICE_URL="$(gcloud run services describe $SERVICE_NAME --region us-central1 --format 'value(status.url)')"

# invoke the service
curl -H "Authorization: bearer $(gcloud auth print-identity-token)" -X GET $SERVICE_URL

6. बधाई हो!

कोडलैब पूरा करने के लिए बधाई!

हमारा सुझाव है कि Cloud Run फ़ंक्शन से जुड़े दस्तावेज़ देखें

हमने क्या-क्या बताया

  • एचटीटीपी अनुरोध से ट्रिगर होने वाले Cloud Run फ़ंक्शन को डिप्लॉय करने का तरीका

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

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

Cloud Run फ़ंक्शन को मिटाने के लिए, Cloud Run Cloud Console पर जाएं. इसके लिए, https://console.cloud.google.com/run पर जाएं और crf-http-codelab सेवा को मिटाएं.

अगर आपको पूरा प्रोजेक्ट मिटाना है, तो https://console.cloud.google.com/cloud-resource-manager पर जाएं. इसके बाद, दूसरे चरण में बनाया गया प्रोजेक्ट चुनें और मिटाएं को चुनें. प्रोजेक्ट मिटाने पर, आपको Cloud SDK में प्रोजेक्ट बदलने होंगे. gcloud projects list कमांड चलाकर, सभी उपलब्ध प्रोजेक्ट की सूची देखी जा सकती है.