1. מבוא
בעזרת Eventarc קל לקשר שירותים שונים (Cloud Run, Kubernetes, Workflows) לאירועים ממגוון מקורות. הוא מאפשר לפתח ארכיטקטורות מבוססות-אירועים שבהן מיקרו-שירותים (microservices) בצימוד חלש ומפוזרים. הוא גם מטפל בהטמעת נתונים של אירועים, מסירה, אבטחה, הרשאות וטיפול בשגיאות, כדי לשפר את הגמישות של המפתחים ואת עמידות האפליקציות. במאמר Trigger Cloud Run with events from Eventarc codelab יש היכרות עם Eventarc.
ב-Codelab הזה, תשתמשו ב-Eventarc כדי לקרוא אירועים מ-Pub/Sub, מ-Cloud Storage ומיומני ביקורת של Cloud, ולהעביר אותם לשירות Kubernetes שפועל על Google Kubernetes Engine (GKE).
מה תלמדו
- יצירת אשכול GKE.
- יצירת שירות GKE כ-event sink.
- יוצרים טריגר של Pub/Sub.
- יצירת טריגר ל-Cloud Storage
- יצירת טריגר ליומני ביקורת של Cloud.
2. הגדרה ודרישות
הגדרת סביבה בקצב עצמאי
- נכנסים למסוף Google Cloud ויוצרים פרויקט חדש או עושים שימוש חוזר בפרויקט קיים. אם אין לכם עדיין חשבון Gmail או חשבון Google Workspace, עליכם ליצור חשבון.
- Project name הוא השם המוצג של המשתתפים בפרויקט. זו מחרוזת תווים שלא משמשת את Google APIs. אפשר לעדכן אותו בכל שלב.
- Project ID הוא ייחודי בכל הפרויקטים ב-Google Cloud ואי אפשר לשנות אותו (אי אפשר לשנות אותו אחרי שמגדירים אותו). מסוף Cloud יוצר מחרוזת ייחודית באופן אוטומטי; בדרך כלל לא מעניין אותך מה זה. ברוב ה-Codelabs תצטרכו להפנות אל מזהה הפרויקט (בדרך כלל הוא מזוהה כ-
PROJECT_ID
). אם המזהה שנוצר לא מוצא חן בעיניך, יש לך אפשרות ליצור מזהה אקראי אחר. לחלופין, אפשר לנסות תבנית משלך ולבדוק אם היא זמינה. לא ניתן לשנות אותו אחרי השלב הזה, והוא יישאר למשך הפרויקט. - לידיעתך, יש ערך שלישי – Project Number (מספר פרויקט), שחלק מממשקי ה-API משתמשים בו. מידע נוסף על כל שלושת הערכים האלה זמין במסמכי התיעוד.
- בשלב הבא צריך להפעיל את החיוב במסוף Cloud כדי להשתמש במשאבים או בממשקי API של Cloud. מעבר ב-Codelab הזה לא אמור לעלות הרבה, אם בכלל. כדי להשבית את המשאבים ולא לצבור חיובים מעבר למדריך הזה, אתם יכולים למחוק את המשאבים שיצרתם או למחוק את הפרויקט כולו. משתמשים חדשים ב-Google Cloud זכאים להצטרף לתוכנית תקופת ניסיון בחינם בשווי 1,200 ש"ח.
הפעלת Cloud Shell
אומנם אפשר להפעיל את Google Cloud מרחוק מהמחשב הנייד, אבל ב-Codelab הזה משתמשים ב-Google Cloud Shell, סביבת שורת הפקודה שפועלת ב-Cloud.
במסוף Google Cloud, לוחצים על הסמל של Cloud Shell בסרגל הכלים שבפינה השמאלית העליונה:
נדרשים רק כמה דקות כדי להקצות את הסביבה ולהתחבר אליה. בסיום התהליך, אתם אמורים לראות משהו כזה:
למכונה הווירטואלית הזו נטען כל כלי הפיתוח הדרושים. יש בה ספריית בית בנפח מתמיד של 5GB והיא פועלת ב-Google Cloud, מה שמשפר משמעותית את ביצועי הרשת והאימות. כל העבודה ב-Codelab הזה יכולה להתבצע בתוך דפדפן. אתה לא צריך להתקין שום דבר.
לפני שמתחילים
ב-Inside Cloud Shell, מוודאים שמזהה הפרויקט מוגדר:
PROJECT_ID=your-project-id gcloud config set project $PROJECT_ID
3. יצירת אשכול GKE
תחילה, מפעילים את השירותים הנדרשים ל-GKE:
gcloud services enable container.googleapis.com
יצירת אשכול Autopilot 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
בשלב הבא, פרסו את הקונטיינר hello של Cloud Run כפריסת Kubernetes ב-GKE. יומני השירות האלה קיבלו בקשות HTTP ו-CloudEvents:
SERVICE_NAME=hello-gke kubectl create deployment $SERVICE_NAME \ --image=gcr.io/cloudrun/hello
חשיפת הפריסה כשירות פנימי של Kubernetes. הפעולה הזו יוצרת שירות עם כתובת IP יציבה שאפשר לגשת אליה מתוך האשכול:
kubectl expose deployment $SERVICE_NAME \ --type ClusterIP --port 80 --target-port 8080
לפני שממשיכים לשלב הבא, צריך לוודא שמערך ה-Pod פועל:
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
בשלב הבא, מפעילים את Eventarc כדי לנהל אשכולות GKE:
gcloud eventarc gke-destinations init
ב-Eventarc נוצרת רצף (pod) נפרד של 'העברת אירועים' לכל טריגר שמטרגט שירות 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.subscriber
roles/monitoring.metricWriter
roles/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"
כדי לבדוק אם האירוע התקבל, קודם מאתרים את שם ה-Pod:
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 gsutil mb -l $REGION gs://$BUCKET_NAME
צריך גם להוסיף את התפקיד pubsub.publisher
לחשבון השירות של Cloud Storage עבור טריגרים של Cloud Storage:
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-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
יוצרים קובץ ומשתמשים ב-gsutil
כדי להעלות אותו לקטגוריה:
echo "Hello World" > random.txt gsutil 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
על אף שהטריגר של Cloud Storage הוא הדרך הטובה יותר להאזין לאירועים של Cloud Storage, בשלב הזה תיצרו טריגר של Cloud Audit Log, כדי לעשות זאת.
הגדרה
כדי לקבל אירועים משירות, צריך להפעיל את יומני הביקורת. במסוף Google Cloud, בוחרים את IAM & Admin
ואת Audit Logs
בתפריט שבפינה הימנית העליונה. ברשימת השירותים, מסמנים את Google Cloud Storage
:
בצד שמאל, מוודאים שהאפשרויות Admin
, Read
ו-Write
מסומנות ולוחצים על Save
:
בנוסף, צריך להוסיף את התפקיד eventarc.eventReceiver
לחשבון השירות שמשמש לטריגר עבור טריגרים של יומני ביקורת של Cloud:
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
יוצרים קובץ ומשתמשים ב-gsutil
כדי להעלות אותו לקטגוריה:
echo "Hello World" > random.txt gsutil 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. מעולה!
ברכות על השלמת ה-Codelab.
הנושאים שטיפלנו בהם
- יצירת אשכול GKE.
- יצירת שירות GKE כ-event sink.
- יוצרים טריגר של Pub/Sub.
- יצירת טריגר של Cloud Storage.
- יצירת טריגר ליומני ביקורת של Cloud.