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

1. परिचय

खास जानकारी

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

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

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

आपको इनके बारे में जानकारी मिलेगी

  • एचटीटीपी अनुरोध से ट्रिगर होने वाले 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 का इस्तेमाल करता है.

कृपया यहां बताई गई चीज़ों पर ध्यान दें:

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

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

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