1. परिचय

Cloud Run की मदद से, पूरी तरह से मैनेज किए गए एनवायरमेंट में स्टेटलेस कंटेनर चलाए जा सकते हैं. इसे ओपन सोर्स Knative से बनाया गया है. इससे आपको अपने कंटेनर को Cloud Run के साथ पूरी तरह से मैनेज करने या Cloud Run for Anthos के साथ अपने Google Kubernetes Engine क्लस्टर में चलाने का विकल्प मिलता है.

Eventarc की मदद से, अलग-अलग सेवाओं (Cloud Run, Cloud Functions, Workfklows) को कई तरह के सोर्स से मिलने वाले इवेंट के साथ आसानी से कनेक्ट किया जा सकता है. इससे इवेंट-ड्रिवन आर्किटेक्चर बनाए जा सकते हैं. इनमें माइक्रोसेवाएं, एक-दूसरे से कम जुड़ी होती हैं और डिस्ट्रिब्यूट की जाती हैं. यह इवेंट के डेटा को इकट्ठा करने, उसे डिलीवर करने, उसकी सुरक्षा करने, उसे ऐक्सेस करने की अनुमति देने, और गड़बड़ियों को ठीक करने का काम भी करता है. इससे डेवलपर को तेज़ी से काम करने में मदद मिलती है और ऐप्लिकेशन की परफ़ॉर्मेंस बेहतर होती है.
इस कोडलैब में, आपको Eventarc के बारे में जानकारी मिलेगी. खास तौर पर, Eventarc की मदद से Pub/Sub, Cloud Storage, और Cloud Audit Logs से इवेंट सुने जाएंगे. इसके बाद, उन्हें Cloud Run सेवा को पास किया जाएगा.
आपको क्या सीखने को मिलेगा
- Eventarc का विज़न
- Eventarc में इवेंट खोजना
- Cloud Run सिंक बनाना
- Pub/Sub के लिए ट्रिगर बनाना
- Cloud Storage के लिए ट्रिगर बनाना
- Cloud Audit Logs के लिए ट्रिगर बनाना
- Eventarc के यूज़र इंटरफ़ेस (यूआई) के बारे में जानकारी
2. Eventarc का विज़न
Eventarc का मकसद, Google, Google Cloud, और तीसरे पक्ष के इवेंट सोर्स से इवेंट को Google Cloud के इवेंट डेस्टिनेशन तक पहुंचाना है.

Google Cloud के सोर्स | Google Cloud के मालिकाना हक वाले प्रॉडक्ट से जुड़े इवेंट सोर्स |
Google के सोर्स | इवेंट के ऐसे सोर्स जो Google के मालिकाना हक वाले प्रॉडक्ट हैं. जैसे, Gmail, Hangouts, Android Management वगैरह |
कस्टम सोर्स | ऐसे इवेंट सोर्स जो Google के मालिकाना हक वाले प्रॉडक्ट नहीं हैं और जिन्हें असली उपयोगकर्ताओं ने खुद बनाया है |
तीसरे पक्ष के सोर्स | ऐसे इवेंट सोर्स जो न तो Google के मालिकाना हक वाले हैं और न ही ग्राहक के बनाए हुए हैं. इसमें तीसरे पक्ष के प्रोवाइडर और पार्टनर के मालिकाना हक वाले और उनके ज़रिए मैनेज किए जाने वाले लोकप्रिय इवेंट सोर्स शामिल हैं. जैसे, Check Point CloudGuard, Datadog, ForgeRock, Lacework वगैरह. |
अलग-अलग सेवाओं के बीच इंटरऑपरेबिलिटी के लिए, इवेंट को CloudEvents v1.0 फ़ॉर्मैट में बदला जाता है. CloudEvents, वेंडर से अलग एक ओपन स्पेसिफ़िकेशन है. इसमें इवेंट के डेटा को सामान्य फ़ॉर्मैट में दिखाया जाता है. इससे अलग-अलग सेवाओं, प्लैटफ़ॉर्म, और सिस्टम के बीच इंटरऑपरेबिलिटी को बढ़ावा मिलता है.
3. सेटअप और ज़रूरी शर्तें
अपने हिसाब से एनवायरमेंट सेट अप करना
- Google Cloud Console में साइन इन करें और नया प्रोजेक्ट बनाएं या किसी मौजूदा प्रोजेक्ट का फिर से इस्तेमाल करें. अगर आपके पास पहले से कोई Gmail या Google Workspace खाता नहीं है, तो आपको एक खाता बनाना होगा.



- प्रोजेक्ट का नाम, इस प्रोजेक्ट में हिस्सा लेने वाले लोगों के लिए डिसप्ले नेम होता है. यह एक कैरेक्टर स्ट्रिंग है, जिसका इस्तेमाल Google API नहीं करते. इसे किसी भी समय अपडेट किया जा सकता है.
- प्रोजेक्ट आईडी, सभी Google Cloud प्रोजेक्ट के लिए यूनीक होना चाहिए. साथ ही, इसे बदला नहीं जा सकता. Cloud Console, एक यूनीक स्ट्रिंग अपने-आप जनरेट करता है. आम तौर पर, आपको इससे कोई फ़र्क़ नहीं पड़ता कि यह क्या है. ज़्यादातर कोडलैब में, आपको प्रोजेक्ट आईडी का रेफ़रंस देना होगा. इसे आम तौर पर
PROJECT_IDके तौर पर पहचाना जाता है. इसलिए, अगर आपको यह पसंद नहीं है, तो कोई दूसरा रैंडम आईडी जनरेट करें. इसके अलावा, अपने हिसाब से कोई आईडी बनाकर देखें कि वह उपलब्ध है या नहीं. इसके बाद, प्रोजेक्ट बनाने के बाद इसे "फ़्रीज़" कर दिया जाता है. - तीसरी वैल्यू, प्रोजेक्ट नंबर होती है. इसका इस्तेमाल कुछ एपीआई करते हैं. इन तीनों वैल्यू के बारे में ज़्यादा जानने के लिए, दस्तावेज़ देखें.
- इसके बाद, आपको Cloud Console में बिलिंग चालू करनी होगी, ताकि Cloud संसाधनों/एपीआई का इस्तेमाल किया जा सके. इस कोडलैब को पूरा करने में ज़्यादा खर्च नहीं आएगा. संसाधन बंद करने के लिए, कोडलैब के आखिर में दिए गए "बंद करें" निर्देशों का पालन करें, ताकि इस ट्यूटोरियल के बाद आपको बिलिंग न करनी पड़े. Google Cloud के नए उपयोगकर्ताओं को, मुफ़्त में आज़माने के लिए 300 डॉलर का क्रेडिट मिलता है.
Cloud Shell शुरू करें
Google Cloud को अपने लैपटॉप से रिमोटली ऐक्सेस किया जा सकता है. हालांकि, इस कोडलैब में Google Cloud Shell का इस्तेमाल किया जाएगा. यह क्लाउड में चलने वाला कमांड लाइन एनवायरमेंट है.
GCP Console में, सबसे ऊपर दाईं ओर मौजूद टूलबार पर मौजूद Cloud Shell आइकॉन पर क्लिक करें:

इसे चालू करने और एनवायरमेंट से कनेक्ट करने में सिर्फ़ कुछ सेकंड लगेंगे. यह प्रोसेस पूरी होने के बाद, आपको कुछ ऐसा दिखेगा:

इस वर्चुअल मशीन में, डेवलपमेंट के लिए ज़रूरी सभी टूल पहले से मौजूद हैं. यह 5 जीबी की होम डायरेक्ट्री उपलब्ध कराता है. साथ ही, यह Google Cloud पर काम करता है. इससे नेटवर्क की परफ़ॉर्मेंस और पुष्टि करने की प्रोसेस बेहतर होती है. इस लैब में मौजूद सभी टास्क को सिर्फ़ ब्राउज़र की मदद से पूरा किया जा सकता है.
शुरू करने से पहले
Cloud Shell में, पक्का करें कि आपका प्रोजेक्ट आईडी सेट अप हो:
PROJECT_ID=your-project-id gcloud config set project $PROJECT_ID
4. Cloud Run सेवा डिप्लॉय करना
इवेंट पाने के लिए, Cloud Run सेवा डिप्लॉय करें. आपको Cloud Run के Hello कंटेनर को डिप्लॉय करना होगा. यह कंटेनर, CloudEvents के कॉन्टेंट को लॉग करता है.
सबसे पहले, Cloud Run के लिए ज़रूरी सेवाएं चालू करें:
gcloud services enable run.googleapis.com
hello कंटेनर को Cloud Run पर डिप्लॉय करें:
REGION=us-central1 SERVICE_NAME=hello gcloud run deploy $SERVICE_NAME \ --allow-unauthenticated \ --image=gcr.io/cloudrun/hello \ --region=$REGION
सफल होने पर, कमांड लाइन में सेवा का यूआरएल दिखता है. सेवा के यूआरएल को किसी भी ब्राउज़र विंडो में खोलकर, यह पुष्टि की जा सकती है कि सेवा अब डिप्लॉय हो गई है.
5. इवेंट खोजना
Eventarc में ट्रिगर बनाने से पहले, यह पता लगाया जा सकता है कि इवेंट के सोर्स क्या हैं, वे किस तरह के इवेंट भेज सकते हैं, और उन्हें इस्तेमाल करने के लिए ट्रिगर को कैसे कॉन्फ़िगर किया जाए.
अलग-अलग तरह के इवेंट की सूची देखने के लिए:
gcloud beta eventarc attributes types list NAME DESCRIPTION google.cloud.audit.log.v1.written Cloud Audit Log written google.cloud.pubsub.topic.v1.messagePublished Cloud Pub/Sub message published google.cloud.storage.object.v1.archived Cloud Storage: Sent when a live version of an (object versioned) object is archived or deleted. google.cloud.storage.object.v1.deleted Cloud Storage: Sent when an object has been permanently deleted. google.cloud.storage.object.v1.finalized Cloud Storage: Sent when a new object (or a new generation of an existing object). google.cloud.storage.object.v1.metadataUpdated Cloud Storage: Sent when the metadata of an existing object changes.
हर इवेंट टाइप के बारे में ज़्यादा जानने के लिए:
gcloud beta eventarc attributes types describe google.cloud.audit.log.v1.written attributes: type,serviceName,methodName,resourceName description: 'Cloud Audit Log: Sent when a log is written.' name: google.cloud.audit.log.v1.written
किसी खास तरह के इवेंट को ट्रिगर करने वाली सेवाओं की सूची देखने के लिए:
gcloud beta eventarc attributes service-names list --type=google.cloud.audit.log.v1.written SERVICE_NAME DISPLAY_NAME accessapproval.googleapis.com Access Approval accesscontextmanager.googleapis.com Access Context Manager admin.googleapis.com Google Workspace Admin aiplatform.googleapis.com AI Platform (under Vertex AI) apigee.googleapis.com Apigee apigeeconnect.googleapis.com Apigee Connect ... workflows.googleapis.com Workflows
हर सेवा से जुड़े तरीके के नामों (उप-इवेंट) की सूची देखने के लिए:
gcloud beta eventarc attributes method-names list --type=google.cloud.audit.log.v1.written --service-name=workflows.googleapis.com METHOD_NAME google.cloud.workflows.v1.Workflows.CreateWorkflow google.cloud.workflows.v1.Workflows.DeleteWorkflow google.cloud.workflows.v1.Workflows.GetWorkflow google.cloud.workflows.v1.Workflows.ListWorkflows google.cloud.workflows.v1.Workflows.UpdateWorkflow google.cloud.workflows.v1beta.Workflows.CreateWorkflow google.cloud.workflows.v1beta.Workflows.DeleteWorkflow google.cloud.workflows.v1beta.Workflows.GetWorkflow google.cloud.workflows.v1beta.Workflows.ListWorkflows google.cloud.workflows.v1beta.Workflows.UpdateWorkflow
6. Pub/Sub ट्रिगर बनाना
इवेंट पाने का एक तरीका Cloud Pub/Sub है. कोई भी ऐप्लिकेशन, Pub/Sub पर मैसेज पब्लिश कर सकता है. इन मैसेज को Eventarc के ज़रिए Cloud Run पर डिलीवर किया जा सकता है.
सेटअप
कोई भी ट्रिगर बनाने से पहले, Eventarc के लिए ज़रूरी सेवाएं चालू करें:
gcloud services enable eventarc.googleapis.com
आपको एक सेवा खाते की भी ज़रूरत होगी, जिसका इस्तेमाल ट्रिगर करेंगे. सेवा खाता बनाएं:
SERVICE_ACCOUNT=eventarc-trigger-sa gcloud iam service-accounts create $SERVICE_ACCOUNT
बनाएं
Pub/Sub विषय पर पब्लिश किए गए इवेंट को हमारी डिप्लॉय की गई Cloud Run सेवा में फ़िल्टर करने के लिए, ट्रिगर बनाएं:
TRIGGER_NAME=trigger-pubsub gcloud eventarc triggers create $TRIGGER_NAME \ --destination-run-service=$SERVICE_NAME \ --destination-run-region=$REGION \ --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" \ --location=$REGION \ --service-account=$SERVICE_ACCOUNT@$PROJECT_ID.iam.gserviceaccount.com
टेस्ट
Pub/Sub ट्रिगर, बैकग्राउंड में एक विषय बनाता है. आइए, इसे ढूंढते हैं और किसी वैरिएबल को असाइन करते हैं:
TOPIC_ID=$(gcloud eventarc triggers describe $TRIGGER_NAME --location $REGION --format='value(transport.pubsub.topic)')
विषय पर कोई मैसेज पब्लिश करने के लिए, gcloud का इस्तेमाल करें:
gcloud pubsub topics publish $TOPIC_ID --message="Hello World"
Cloud Run सेवा, आने वाले मैसेज के मुख्य हिस्से को लॉग करती है. इसे Cloud Run इंस्टेंस के लॉग सेक्शन में देखा जा सकता है:

मौजूदा Pub/Sub विषय का इस्तेमाल करके बनाना
डिफ़ॉल्ट रूप से, Pub/Sub ट्रिगर बनाने पर Eventarc आपके लिए एक विषय बनाता है. इसका इस्तेमाल, आपके ऐप्लिकेशन और Cloud Run सेवा के बीच ट्रांसपोर्ट विषय के तौर पर किया जा सकता है. इससे Pub/Sub की मदद से ट्रिगर को आसानी से और जल्दी बनाया जा सकता है. हालांकि, कभी-कभी आपको किसी मौजूदा विषय का इस्तेमाल करना पड़ सकता है. Eventarc की मदद से, --transport-topic gcloud फ़्लैग का इस्तेमाल करके, उसी प्रोजेक्ट में मौजूद Pub/Sub विषय के बारे में बताया जा सकता है.
यह सुविधा कैसे काम करती है, यह देखने के लिए, ट्रांसपोर्ट विषय के तौर पर इस्तेमाल करने के लिए Pub/Sub विषय बनाएं:
TOPIC_ID=eventarc-topic gcloud pubsub topics create $TOPIC_ID
ट्रिगर बनाना:
TRIGGER_NAME=trigger-pubsub-existing gcloud eventarc triggers create $TRIGGER_NAME \ --destination-run-service=$SERVICE_NAME \ --destination-run-region=$REGION \ --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" \ --location=$REGION \ --transport-topic=projects/$PROJECT_ID/topics/$TOPIC_ID \ --service-account=$SERVICE_ACCOUNT@$PROJECT_ID.iam.gserviceaccount.com
विषय पर कोई मैसेज भेजकर, ट्रिगर की जांच की जा सकती है:
gcloud pubsub topics publish $TOPIC_ID --message="Hello again"
7. Cloud Storage ट्रिगर बनाना
इस चरण में, Cloud Storage से इवेंट सुनने के लिए एक ट्रिगर बनाया जाएगा.
सेटअप
सबसे पहले, इवेंट पाने के लिए एक बकेट बनाएं:
BUCKET_NAME=eventarc-gcs-$PROJECT_ID gsutil mb -l $REGION gs://$BUCKET_NAME
eventarc.eventReceiver की भूमिका असाइन करें, ताकि सेवा खाते का इस्तेमाल Cloud Storage ट्रिगर में किया जा सके:
gcloud projects add-iam-policy-binding $PROJECT_ID \ --role roles/eventarc.eventReceiver \ --member serviceAccount:$SERVICE_ACCOUNT@$PROJECT_ID.iam.gserviceaccount.com
Cloud Storage ट्रिगर के लिए, आपको Cloud Storage सेवा खाते में pubsub.publisher की भूमिका भी जोड़नी होगी:
SERVICE_ACCOUNT_STORAGE=$(gsutil kms serviceaccount -p $PROJECT_ID)
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member serviceAccount:$SERVICE_ACCOUNT_STORAGE \
--role roles/pubsub.publisher
बनाएं
बकेट से आपकी सेवा में नई फ़ाइल बनाने के इवेंट को रूट करने के लिए, ट्रिगर बनाएं:
TRIGGER_NAME=trigger-storage gcloud eventarc triggers create $TRIGGER_NAME \ --destination-run-service=$SERVICE_NAME \ --destination-run-region=$REGION \ --event-filters="type=google.cloud.storage.object.v1.finalized" \ --event-filters="bucket=$BUCKET_NAME" \ --location=$REGION \ --service-account=$SERVICE_ACCOUNT@$PROJECT_ID.iam.gserviceaccount.com
टेस्ट
सभी ट्रिगर की सूची बनाएं, ताकि यह पुष्टि की जा सके कि ट्रिगर सही तरीके से बनाया गया है:
gcloud eventarc triggers list
Cloud Storage बकेट में कोई फ़ाइल अपलोड करें:
echo "Hello World" > random.txt gsutil cp random.txt gs://$BUCKET_NAME/random.txt
अगर Cloud Console में Cloud Run सेवा के लॉग देखे जाते हैं, तो आपको मिला हुआ इवेंट दिखेगा:

8. Cloud Audit Logs ट्रिगर बनाना
Cloud Storage ट्रिगर, Cloud Storage इवेंट को सुनने का बेहतर तरीका है. हालांकि, इस चरण में, ऐसा करने के लिए Cloud Audit Log ट्रिगर बनाया जाता है.
सेटअप
किसी सेवा से इवेंट पाने के लिए, आपको Cloud Audit Logs चालू करने होंगे. Cloud Console में, सबसे ऊपर बाईं ओर मौजूद मेन्यू से IAM & Admin और Audit Logs चुनें. सेवाओं की सूची में, Google Cloud Storage पर सही का निशान लगाएं:

दाईं ओर, पक्का करें कि Admin, Read, और Write चुने गए हों. इसके बाद, Save पर क्लिक करें:

बनाएं
बकेट से आपकी सेवा में नई फ़ाइल बनाने के इवेंट को रूट करने के लिए, ट्रिगर बनाएं:
TRIGGER_NAME=trigger-auditlog-storage gcloud eventarc triggers create $TRIGGER_NAME\ --destination-run-service=$SERVICE_NAME \ --destination-run-region=$REGION \ --event-filters="type=google.cloud.audit.log.v1.written" \ --event-filters="serviceName=storage.googleapis.com" \ --event-filters="methodName=storage.objects.create" \ --event-filters-path-pattern="resourceName=/projects/_/buckets/$BUCKET_NAME/objects/*" \ --location=$REGION \ --service-account=$SERVICE_ACCOUNT@$PROJECT_ID.iam.gserviceaccount.com
टेस्ट
ऑडिट लॉग ट्रिगर को शुरू होने में थोड़ा समय लगता है. सभी ट्रिगर की सूची देखकर, यह पता लगाया जा सकता है कि ट्रिगर बनाया गया है या नहीं:
gcloud eventarc triggers list
आपको दिखेगा कि ACTIVE फ़ील्ड Yes है:
NAME TYPE DESTINATION ACTIVE trigger-auditlog-storage google.cloud.audit.log.v1.written Cloud Run service: hello Yes
उसी फ़ाइल को Cloud Storage बकेट में अपलोड करें जिसे आपने पहले अपलोड किया था:
gsutil cp random.txt gs://$BUCKET_NAME/random.txt
अगर Cloud Console में Cloud Run सेवा के लॉग देखे जाते हैं, तो आपको मिला हुआ इवेंट दिखेगा:

9. Eventarc के यूज़र इंटरफ़ेस (यूआई) के बारे में जानकारी
इस चरण में, Google Cloud Console में Eventarc के यूज़र इंटरफ़ेस (यूआई) के बारे में जानें. Eventarc के यूज़र इंटरफ़ेस (यूआई) में, सभी ट्रिगर की खास जानकारी देखी जा सकती है. साथ ही, उनमें बदलाव किया जा सकता है और उन्हें मिटाया जा सकता है. इसके अलावा, Google Cloud Console से नए ट्रिगर बनाए जा सकते हैं.
Google Cloud के Eventarc सेक्शन पर जाएं:

आपको पहले बनाए गए ट्रिगर की सूची दिखेगी:

किसी ट्रिगर पर क्लिक करने से, उसकी जानकारी देखी जा सकती है. साथ ही, उसे बदला या मिटाया जा सकता है:

Create trigger को चुनकर भी नया ट्रिगर बनाया जा सकता है. इसके लिए, ट्रिगर की जानकारी भरें:

10. बधाई हो!
कोडलैब पूरा करने के लिए बधाई.
हमने क्या-क्या कवर किया है
- Eventarc का विज़न
- Eventarc में इवेंट खोजना
- Cloud Run सिंक बनाना
- Pub/Sub के लिए ट्रिगर बनाना
- Cloud Storage के लिए ट्रिगर बनाना
- Cloud Audit Logs के लिए ट्रिगर बनाना
- Eventarc के यूज़र इंटरफ़ेस (यूआई) के बारे में जानकारी