1. परिचय

Eventarc की मदद से, अलग-अलग सेवाओं (Cloud Run, Kubernetes, Workflows) को कई सोर्स से मिलने वाले इवेंट के साथ आसानी से कनेक्ट किया जा सकता है. इससे इवेंट-ड्रिवन आर्किटेक्चर बनाए जा सकते हैं. इनमें माइक्रोसेवाएं, एक-दूसरे से कम जुड़ी होती हैं और डिस्ट्रिब्यूट की जाती हैं. यह इवेंट के डेटा को इकट्ठा करने, उसे डिलीवर करने, उसकी सुरक्षा करने, उसे ऐक्सेस करने की अनुमति देने, और गड़बड़ियों को ठीक करने का काम भी करता है. इससे डेवलपर को तेज़ी से काम करने में मदद मिलती है और ऐप्लिकेशन की परफ़ॉर्मेंस बेहतर होती है. Eventarc के बारे में जानने के लिए, Eventarc के इवेंट से Cloud Run को ट्रिगर करने से जुड़ा कोडलैब देखें.
इस कोडलैब में, Pub/Sub, Cloud Storage, और Cloud Audit Logs से इवेंट पढ़ने के लिए, Eventarc का इस्तेमाल किया जाएगा. साथ ही, इन इवेंट को Google Kubernetes Engine (GKE) पर चल रही Kubernetes सेवा को पास किया जाएगा.
आपको क्या सीखने को मिलेगा
- GKE क्लस्टर बनाएं.
- GKE सेवा को इवेंट सिंक के तौर पर बनाएं.
- Pub/Sub ट्रिगर बनाएं.
- Cloud Storage ट्रिगर बनाना
- Cloud Audit Logs ट्रिगर बनाएं.
2. सेटअप और ज़रूरी शर्तें
अपने हिसाब से एनवायरमेंट सेट अप करना
- 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 का इस्तेमाल किया जाएगा. यह क्लाउड में चलने वाला कमांड लाइन एनवायरमेंट है.
Google Cloud Console में, सबसे ऊपर दाएं कोने में मौजूद टूलबार पर, Cloud Shell आइकॉन पर क्लिक करें:

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

इस वर्चुअल मशीन में, डेवलपमेंट के लिए ज़रूरी सभी टूल पहले से मौजूद हैं. यह 5 जीबी की होम डायरेक्ट्री उपलब्ध कराता है. साथ ही, यह Google Cloud पर काम करता है. इससे नेटवर्क की परफ़ॉर्मेंस और पुष्टि करने की प्रोसेस बेहतर होती है. इस कोडलैब में मौजूद सभी टास्क, ब्राउज़र में किए जा सकते हैं. आपको कुछ भी इंस्टॉल करने की ज़रूरत नहीं है.
शुरू करने से पहले
Cloud Shell में, पक्का करें कि आपका प्रोजेक्ट आईडी सेट अप हो:
PROJECT_ID=your-project-id gcloud config set project $PROJECT_ID
3. GKE क्लस्टर बनाना
सबसे पहले, GKE के लिए ज़रूरी सेवाएं चालू करें:
gcloud services enable container.googleapis.com
ऑटोपायलट GKE क्लस्टर बनाएं:
CLUSTER_NAME=eventarc-cluster REGION=us-central1 gcloud container clusters create-auto $CLUSTER_NAME --region $REGION
अगले चरण पर जाने से पहले, पक्का करें कि क्लस्टर बन गया हो.
4. GKE सेवा डिप्लॉय करना
किसी सेवा को डिप्लॉय करने से पहले, kubectl की मदद से क्लस्टर के साथ इंटरैक्ट करने के लिए पुष्टि करने वाले क्रेडेंशियल पाएं:
gcloud container clusters get-credentials $CLUSTER_NAME \
--region $REGION
इसके बाद, Cloud Run के hello container को GKE पर Kubernetes डिप्लॉयमेंट के तौर पर डिप्लॉय करें. यह सेवा, मिले हुए एचटीटीपी अनुरोधों और CloudEvents को लॉग करती है:
SERVICE_NAME=hello-gke
kubectl create deployment $SERVICE_NAME \
--image=gcr.io/cloudrun/hello
डिप्लॉयमेंट को इंटरनल Kubernetes सेवा के तौर पर उपलब्ध कराएं. इससे एक ऐसी सेवा बनती है जिसका आईपी पता स्थिर होता है और जिसे क्लस्टर में ऐक्सेस किया जा सकता है:
kubectl expose deployment $SERVICE_NAME \ --type ClusterIP --port 80 --target-port 8080
अगले चरण पर जाने से पहले, पक्का करें कि पॉड चल रहा हो:
kubectl get pods NAME READY STATUS hello-gke-df6469d4b-5vv22 1/1 Running
आपको यह सेवा भी दिख सकती है:
kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP hello-gke LoadBalancer 10.51.1.26 <none>
5. Eventarc को सेटअप करना
इस चरण में, Eventarc को सेट अप करने और Eventarc GKE डेस्टिनेशन को शुरू करने के लिए, चरण पूरे किए जाएंगे.
सबसे पहले, Eventarc और Eventarc GKE डेस्टिनेशन के लिए ज़रूरी सेवाएं चालू करें:
gcloud services enable eventarc.googleapis.com \ cloudresourcemanager.googleapis.com
इसके बाद, GKE क्लस्टर मैनेज करने के लिए Eventarc चालू करें:
gcloud eventarc gke-destinations init
Eventarc, GKE सेवा को टारगेट करने वाले हर ट्रिगर के लिए, एक अलग इवेंट फ़ॉरवर्डर पॉड बनाता है. साथ ही, क्लस्टर में बदलाव करने के लिए, साफ़ तौर पर अनुमतियां देना ज़रूरी होता है. इसके लिए, एक खास सेवा खाते को क्लस्टर में संसाधनों को मैनेज करने की अनुमतियां दी जाती हैं. यह कार्रवाई, हर Google Cloud प्रोजेक्ट के लिए एक बार करनी होगी.
6. इवेंट खोजना
ट्रिगर बनाने से पहले, इवेंट सोर्स के बारे में पता लगाया जा सकता है. साथ ही, यह भी पता लगाया जा सकता है कि वे किस तरह के इवेंट भेज सकते हैं और उन्हें इस्तेमाल करने के लिए ट्रिगर को कैसे कॉन्फ़िगर किया जा सकता है.
Eventarc के साथ काम करने वाले इवेंट के बारे में जानने के लिए, दस्तावेज़ पेज देखें.gcloud का इस्तेमाल करके भी इवेंट एक्सप्लोर किए जा सकते हैं.
अलग-अलग तरह के इवेंट की सूची देखने के लिए:
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
7. Pub/Sub ट्रिगर बनाना
Pub/Sub के ज़रिए इवेंट पाने का एक तरीका है. कोई भी ऐप्लिकेशन, Pub/Sub पर मैसेज पब्लिश कर सकता है. साथ ही, इन मैसेज को Eventarc के ज़रिए सेवाओं तक पहुंचाया जा सकता है.
सेट अप
कोई भी ट्रिगर बनाने से पहले, आपको एक सेवा खाते की ज़रूरत होगी. इसका इस्तेमाल ट्रिगर करेंगे.
सेवा खाता बनाएं:
SERVICE_ACCOUNT=eventarc-gke-trigger-sa gcloud iam service-accounts create $SERVICE_ACCOUNT
GKE डेस्टिनेशन वाले ट्रिगर के लिए, सेवा खाते को ये भूमिकाएं दी जानी चाहिए:
roles/pubsub.subscriberroles/monitoring.metricWriterroles/eventarc.eventReceiver(सिर्फ़ AuditLog ट्रिगर के लिए. इसे बाद में जोड़ा जाएगा)
ये भूमिकाएं असाइन करें:
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member serviceAccount:$SERVICE_ACCOUNT@$PROJECT_ID.iam.gserviceaccount.com \ --role roles/pubsub.subscriber gcloud projects add-iam-policy-binding $PROJECT_ID \ --member serviceAccount:$SERVICE_ACCOUNT@$PROJECT_ID.iam.gserviceaccount.com \ --role roles/monitoring.metricWriter
बनाएं
Pub/Sub मैसेज को अपनी सेवा पर रूट करने के लिए, ट्रिगर बनाएं:
TRIGGER_NAME=trigger-pubsub-gke gcloud eventarc triggers create $TRIGGER_NAME \ --destination-gke-cluster=$CLUSTER_NAME \ --destination-gke-location=$REGION \ --destination-gke-namespace=default \ --destination-gke-service=$SERVICE_NAME \ --destination-gke-path=/ \ --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" \ --location=$REGION \ --service-account=$SERVICE_ACCOUNT@$PROJECT_ID.iam.gserviceaccount.com
टेस्ट
सभी ट्रिगर की सूची देखकर, यह पता लगाया जा सकता है कि ट्रिगर बनाया गया है या नहीं:
gcloud eventarc triggers list
Pub/Sub ट्रिगर, पर्दे के पीछे एक 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"
यह देखने के लिए कि इवेंट मिला है या नहीं, सबसे पहले पॉड का नाम ढूंढें:
kubectl get pods NAME READY STATUS hello-gke-df6469d4b-5vv22 1/1 Running
और इसे किसी वैरिएबल में सेव करें:
POD_NAME=hello-gke-df6469d4b-5vv22
मिले हुए इवेंट की पुष्टि करने के लिए, पॉड के लॉग देखें:
kubectl logs $POD_NAME
{
"severity": "INFO",
"eventType": "google.cloud.pubsub.topic.v1.messagePublished",
"message": "Received event of type google.cloud.pubsub.topic.v1.messagePublished. Event data: Hello World",
"event": {
"data": {
"subscription": "projects/atamel-eventarc-gke/subscriptions/eventarc-us-central1-trigger-pubsub-gke-sub-270",
"message": {
"data": "SGVsbG8gV29ybGQ=",
"messageId": "6031025573654834",
"publishTime": "2022-10-19T14:13:07.990Z"
}
},
"datacontenttype": "application/json",
"id": "6031025573654834",
"source": "//pubsub.googleapis.com/projects/atamel-eventarc-gke/topics/eventarc-us-central1-trigger-pubsub-gke-729",
"specversion": "1.0",
"time": "2022-10-19T14:13:07.99Z",
"type": "google.cloud.pubsub.topic.v1.messagePublished"
}
}
8. Cloud Storage ट्रिगर बनाना
Cloud Storage के ज़रिए भी इवेंट पाए जा सकते हैं. उदाहरण के लिए, कोई ऐप्लिकेशन किसी बकेट में फ़ाइल अपलोड कर सकता है. इस इवेंट को Eventarc के ज़रिए सेवाओं तक पहुंचाया जा सकता है.
सेट अप
Cloud Storage ट्रिगर बनाने से पहले, इवेंट पाने के लिए एक बकेट बनाएं:
BUCKET_NAME=eventarc-gcs-$PROJECT_ID gcloud storage buckets update gs://$BUCKET_NAME --location=$REGION
Cloud Storage ट्रिगर के लिए, आपको Cloud Storage सेवा खाते में pubsub.publisher की भूमिका भी जोड़नी होगी:
SERVICE_ACCOUNT_STORAGE=$(gcloud storage service-agent --project=$PROJECT_ID)
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member serviceAccount:$SERVICE_ACCOUNT_STORAGE \
--role roles/pubsub.publisher
बनाएं
बकेट से आपकी सेवा में नई फ़ाइल बनाने के इवेंट को रूट करने के लिए, ट्रिगर बनाएं:
TRIGGER_NAME=trigger-storage-gke gcloud eventarc triggers create $TRIGGER_NAME \ --destination-gke-cluster=$CLUSTER_NAME \ --destination-gke-location=$REGION \ --destination-gke-namespace=default \ --destination-gke-service=$SERVICE_NAME \ --destination-gke-path=/ \ --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
कोई फ़ाइल बनाएं और बकेट में फ़ाइल अपलोड करने के लिए, gcloud storage का इस्तेमाल करें:
echo "Hello World" > random.txt gcloud storage cp random.txt gs://$BUCKET_NAME/random.txt
मिले हुए इवेंट की पुष्टि करने के लिए, पॉड के लॉग देखें:
kubectl logs $POD_NAME
{
"severity": "INFO",
"eventType": "google.cloud.storage.object.v1.finalized",
"message": "Received event of type google.cloud.storage.object.v1.finalized. Event data: {\n \"kind\": \"storage#object\",\n \"id\": \"eventarc-gcs-atamel-eventarc-gke/random.txt/1666190425669022\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/eventarc-gcs-atamel-eventarc-gke/o/random.txt\",\n \"name\": \"random.txt\",\n \"bucket\": \"eventarc-gcs-atamel-eventarc-gke\",\n \"generation\": \"1666190425669022\",\n \"metageneration\": \"1\",\n \"contentType\": \"text/plain\",\n \"timeCreated\": \"2022-10-19T14:40:25.678Z\",\n \"updated\": \"2022-10-19T14:40:25.678Z\",\n \"storageClass\": \"STANDARD\",\n \"timeStorageClassUpdated\": \"2022-10-19T14:40:25.678Z\",\n \"size\": \"12\",\n \"md5Hash\": \"5Z/5eUEET4XfUpfhwwLSYA==\",\n \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/eventarc-gcs-atamel-eventarc-gke/o/random.txt?generation=1666190425669022\u0026alt=media\",\n \"contentLanguage\": \"en\",\n \"crc32c\": \"R1jUOQ==\",\n \"etag\": \"CJ77zIPD7PoCEAE=\"\n}\n",
"event": {
"bucket": "eventarc-gcs-atamel-eventarc-gke",
"data": {
"kind": "storage#object",
"id": "eventarc-gcs-atamel-eventarc-gke/random.txt/1666190425669022",
"selfLink": "https://www.googleapis.com/storage/v1/b/eventarc-gcs-atamel-eventarc-gke/o/random.txt",
"name": "random.txt",
"bucket": "eventarc-gcs-atamel-eventarc-gke",
"generation": "1666190425669022",
"metageneration": "1",
"contentType": "text/plain",
"timeCreated": "2022-10-19T14:40:25.678Z",
"updated": "2022-10-19T14:40:25.678Z",
"storageClass": "STANDARD",
"timeStorageClassUpdated": "2022-10-19T14:40:25.678Z",
"size": "12",
"md5Hash": "5Z/5eUEET4XfUpfhwwLSYA==",
"mediaLink": "https://storage.googleapis.com/download/storage/v1/b/eventarc-gcs-atamel-eventarc-gke/o/random.txt?generation=1666190425669022\u0026alt=media",
"contentLanguage": "en",
"crc32c": "R1jUOQ==",
"etag": "CJ77zIPD7PoCEAE="
},
"datacontenttype": "application/json",
"id": "6031255652220627",
"source": "//storage.googleapis.com/projects/_/buckets/eventarc-gcs-atamel-eventarc-gke",
"specversion": "1.0",
"subject": "objects/random.txt",
"time": "2022-10-19T14:40:25.678152Z",
"type": "google.cloud.storage.object.v1.finalized"
}
}
9. Cloud Audit Logs ट्रिगर बनाना
Cloud Storage ट्रिगर, Cloud Storage इवेंट को सुनने का बेहतर तरीका है. हालांकि, इस चरण में, ऐसा करने के लिए Cloud Audit Log ट्रिगर बनाया जाता है.
सेट अप
किसी सेवा से इवेंट पाने के लिए, आपको ऑडिट लॉग चालू करने होंगे. Google Cloud Console में, सबसे ऊपर बाईं ओर मौजूद मेन्यू से IAM & Admin और Audit Logs चुनें. सेवाओं की सूची में, Google Cloud Storage पर सही का निशान लगाएं:

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

Cloud Audit Logs ट्रिगर के लिए, आपको ट्रिगर सेवा खाते में eventarc.eventReceiver की भूमिका भी जोड़नी होगी:
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member serviceAccount:$SERVICE_ACCOUNT@$PROJECT_ID.iam.gserviceaccount.com \ --role roles/eventarc.eventReceiver
बनाएं
बकेट से आपकी सेवा में नई फ़ाइल बनाने के इवेंट को रूट करने के लिए, ट्रिगर बनाएं:
TRIGGER_NAME=trigger-auditlog-storage-gke gcloud eventarc triggers create $TRIGGER_NAME \ --destination-gke-cluster=$CLUSTER_NAME \ --destination-gke-location=$REGION \ --destination-gke-namespace=default \ --destination-gke-service=$SERVICE_NAME \ --destination-gke-path=/ \ --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-gke google.cloud.audit.log.v1.written GKE: hello-gke Yes
कोई फ़ाइल बनाएं और बकेट में फ़ाइल अपलोड करने के लिए, gcloud storage का इस्तेमाल करें:
echo "Hello World" > random.txt gcloud storage cp random.txt gs://$BUCKET_NAME/random.txt
मिले हुए इवेंट की पुष्टि करने के लिए, पॉड के लॉग देखें:
kubectl logs $POD_NAME
{
"severity": "INFO",
"eventType": "google.cloud.audit.log.v1.written",
"message": "Received event of type google.cloud.audit.log.v1.written. Event data: {\"protoPayload\":{\"status\":{},\"authenticationInfo\":{\"principalEmail\":\"atameldev@gmail.com\"},\"requestMetadata\":{\"callerIp\":\"149.71.143.227\",\"callerSuppliedUserAgent\":\"apitools Python/3.10.4 gsutil/5.14 (darwin) analytics/disabled interactive/True command/cp google-cloud-sdk/405.0.1,gzip(gfe)\",\"requestAttributes\":{\"time\":\"2022-10-19T15:05:54.144615670Z\",\"auth\":{}},\"destinationAttributes\":{}},\"serviceName\":\"storage.googleapis.com\",\"methodName\":\"storage.objects.create\",\"authorizationInfo\":[{\"resource\":\"projects/_/buckets/eventarc-gcs-atamel-eventarc-gke/objects/random.txt\",\"permission\":\"storage.objects.delete\",\"granted\":true,\"resourceAttributes\":{}},{\"resource\":\"projects/_/buckets/eventarc-gcs-atamel-eventarc-gke/objects/random.txt\",\"permission\":\"storage.objects.create\",\"granted\":true,\"resourceAttributes\":{}}],\"resourceName\":\"projects/_/buckets/eventarc-gcs-atamel-eventarc-gke/objects/random.txt\",\"serviceData\":{\"@type\":\"type.googleapis.com/google.iam.v1.logging.AuditData\",\"policyDelta\":{\"bindingDeltas\":[{\"action\":\"ADD\",\"role\":\"roles/storage.legacyObjectOwner\",\"member\":\"projectOwner:atamel-eventarc-gke\"},{\"action\":\"ADD\",\"role\":\"roles/storage.legacyObjectOwner\",\"member\":\"projectEditor:atamel-eventarc-gke\"},{\"action\":\"ADD\",\"role\":\"roles/storage.legacyObjectOwner\",\"member\":\"user:atameldev@gmail.com\"},{\"action\":\"ADD\",\"role\":\"roles/storage.legacyObjectReader\",\"member\":\"projectViewer:atamel-eventarc-gke\"}]}},\"resourceLocation\":{\"currentLocations\":[\"us-central1\"]}},\"insertId\":\"-8vmrbve7pol2\",\"resource\":{\"type\":\"gcs_bucket\",\"labels\":{\"project_id\":\"atamel-eventarc-gke\",\"bucket_name\":\"eventarc-gcs-atamel-eventarc-gke\",\"location\":\"us-central1\"}},\"timestamp\":\"2022-10-19T15:05:54.138732321Z\",\"severity\":\"INFO\",\"logName\":\"projects/atamel-eventarc-gke/logs/cloudaudit.googleapis.com%2Fdata_access\",\"receiveTimestamp\":\"2022-10-19T15:05:54.839604461Z\"}",
"event": {
"data": {
"protoPayload": {
"status": {
},
"authenticationInfo": {
"principalEmail": "atameldev@gmail.com"
},
"requestMetadata": {
"callerIp": "149.71.143.227",
"callerSuppliedUserAgent": "apitools Python/3.10.4 gsutil/5.14 (darwin) analytics/disabled interactive/True command/cp google-cloud-sdk/405.0.1,gzip(gfe)",
"requestAttributes": {
"time": "2022-10-19T15:05:54.144615670Z",
"auth": {
}
},
"destinationAttributes": {
}
},
"serviceName": "storage.googleapis.com",
"methodName": "storage.objects.create",
"authorizationInfo": [
{
"resource": "projects/_/buckets/eventarc-gcs-atamel-eventarc-gke/objects/random.txt",
"permission": "storage.objects.delete",
"granted": true,
"resourceAttributes": {
}
},
{
"resource": "projects/_/buckets/eventarc-gcs-atamel-eventarc-gke/objects/random.txt",
"permission": "storage.objects.create",
"granted": true,
"resourceAttributes": {
}
}
],
"resourceName": "projects/_/buckets/eventarc-gcs-atamel-eventarc-gke/objects/random.txt",
"serviceData": {
"@type": "type.googleapis.com/google.iam.v1.logging.AuditData",
"policyDelta": {
"bindingDeltas": [
{
"action": "ADD",
"role": "roles/storage.legacyObjectOwner",
"member": "projectOwner:atamel-eventarc-gke"
},
{
"action": "ADD",
"role": "roles/storage.legacyObjectOwner",
"member": "projectEditor:atamel-eventarc-gke"
},
{
"action": "ADD",
"role": "roles/storage.legacyObjectOwner",
"member": "user:atameldev@gmail.com"
},
{
"action": "ADD",
"role": "roles/storage.legacyObjectReader",
"member": "projectViewer:atamel-eventarc-gke"
}
]
}
},
"resourceLocation": {
"currentLocations": [
"us-central1"
]
}
},
"insertId": "-8vmrbve7pol2",
"resource": {
"type": "gcs_bucket",
"labels": {
"project_id": "atamel-eventarc-gke",
"bucket_name": "eventarc-gcs-atamel-eventarc-gke",
"location": "us-central1"
}
},
"timestamp": "2022-10-19T15:05:54.138732321Z",
"severity": "INFO",
"logName": "projects/atamel-eventarc-gke/logs/cloudaudit.googleapis.com%2Fdata_access",
"receiveTimestamp": "2022-10-19T15:05:54.839604461Z"
},
"datacontenttype": "application/json; charset=utf-8",
"dataschema": "https://googleapis.github.io/google-cloudevents/jsonschema/google/events/cloud/audit/v1/LogEntryData.json",
"id": "projects/atamel-eventarc-gke/logs/cloudaudit.googleapis.com%2Fdata_access-8vmrbve7pol21666191954138732",
"methodname": "storage.objects.create",
"recordedtime": "2022-10-19T15:05:54.138732321Z",
"resourcename": "projects/_/buckets/eventarc-gcs-atamel-eventarc-gke/objects/random.txt",
"servicename": "storage.googleapis.com",
"source": "//cloudaudit.googleapis.com/projects/atamel-eventarc-gke/logs/data_access",
"specversion": "1.0",
"subject": "storage.googleapis.com/projects/_/buckets/eventarc-gcs-atamel-eventarc-gke/objects/random.txt",
"time": "2022-10-19T15:05:54.839604461Z",
"type": "google.cloud.audit.log.v1.written"
}
}
10. बधाई हो!
कोडलैब पूरा करने के लिए बधाई.
हमने क्या-क्या कवर किया है
- GKE क्लस्टर बनाएं.
- GKE सेवा को इवेंट सिंक के तौर पर बनाएं.
- Pub/Sub ट्रिगर बनाएं.
- Cloud Storage ट्रिगर बनाएं.
- Cloud Audit Logs ट्रिगर बनाएं.