1. Giriş
Eventarc, çeşitli hizmetleri (Cloud Run, Kubernetes, İş Akışı) çeşitli kaynaklardan gelen etkinliklerle bağlamayı kolaylaştırır. Mikro hizmetlerin gevşek bağlı ve dağıtıldığı etkinlik odaklı mimariler oluşturmanıza olanak tanır. Ayrıca, geliştirici çevikliğini ve uygulama esnekliğini artıran etkinlik besleme, yayınlama, güvenlik, yetkilendirme ve hata işleme işlemlerini sizin adınıza yapar. Eventarc'a giriş için Eventarc codelab'den etkinliklerle Cloud Run'u tetikleme başlıklı makaleyi inceleyin.
Bu codelab'de, Pub/Sub, Cloud Storage ve Cloud Denetleme Günlükleri'ndeki etkinlikleri okumak ve bunları Google Kubernetes Engine (GKE) üzerinde çalışan bir Kubernetes hizmetine iletmek için Eventarc'ı kullanacaksınız.
Neler öğreneceksiniz?
- GKE kümesi oluşturun.
- Etkinlik havuzu olarak bir GKE hizmeti oluşturun.
- Pub/Sub tetikleyicisi oluşturun.
- Cloud Storage tetikleyicisi oluşturma
- Cloud Audit Logs tetikleyicisi oluşturun.
2. Kurulum ve şartlar
Kendine ait tempoda ortam oluşturma
- Google Cloud Console'da oturum açın ve yeni bir proje oluşturun veya mevcut bir projeyi yeniden kullanın. Gmail veya Google Workspace hesabınız yoksa hesap oluşturmanız gerekir.
- Proje adı, bu projenin katılımcılarının görünen adıdır. Google API'leri tarafından kullanılmayan bir karakter dizesidir. Dilediğiniz zaman bunu güncelleyebilirsiniz.
- Proje kimliği, tüm Google Cloud projelerinde benzersizdir ve değiştirilemez (ayarlandıktan sonra değiştirilemez). Cloud Console, benzersiz bir dize otomatik olarak oluşturur. Bu dizenin ne olduğu genellikle önemli değildir. Çoğu kod laboratuvarında proje kimliğine (genellikle
PROJECT_ID
olarak tanımlanır) referans vermeniz gerekir. Oluşturulan kimliği beğenmezseniz rastgele başka bir kimlik oluşturabilirsiniz. Alternatif olarak, kendi cihazınızı deneyerek kullanılabilir olup olmadığını görebilirsiniz. Bu adımdan sonra değiştirilemez ve proje boyunca geçerli kalır. - Bazı API'lerin kullandığı üçüncü bir değer (Proje Numarası) olduğunu hatırlatmak isteriz. Bu üç değer hakkında daha fazla bilgiyi dokümanlar bölümünde bulabilirsiniz.
- Ardından, Cloud kaynaklarını/API'lerini kullanmak için Cloud Console'da faturalandırmayı etkinleştirmeniz gerekir. Bu codelab'i çalıştırmak çok pahalı olmayacaktır. Bu eğitimden sonra faturalandırılmamak için kaynakları kapatmak üzere oluşturduğunuz kaynakları veya projenin tamamını silebilirsiniz. Google Cloud'un yeni kullanıcıları 300 ABD doları değerinde ücretsiz deneme programına uygundur.
Cloud Shell'i başlatma
Google Cloud, dizüstü bilgisayarınızdan uzaktan çalıştırılabilir. Ancak bu kod laboratuvarında, Cloud'da çalışan bir komut satırı ortamı olan Google Cloud Shell'i kullanacaksınız.
Google Cloud Console'da, sağ üstteki araç çubuğunda Cloud Shell simgesini tıklayın:
Ortam sağlanıp bağlantı kurulabilmesi için birkaç saniye beklemeniz gerekir. İşlem tamamlandığında aşağıdakine benzer bir ekran görürsünüz:
Bu sanal makinede ihtiyacınız olan tüm geliştirme araçları yüklüdür. 5 GB boyutunda kalıcı bir ana dizin sunar ve Google Cloud üzerinde çalışır. Bu sayede ağ performansını ve kimlik doğrulamayı büyük ölçüde iyileştirir. Bu codelab'deki tüm çalışmalarınızı tarayıcıda yapabilirsiniz. Hiçbir şey yüklemeniz gerekmez.
Başlamadan önce
Cloud Shell'de proje kimliğinizin ayarlandığından emin olun:
PROJECT_ID=your-project-id gcloud config set project $PROJECT_ID
3. GKE kümesi oluşturma
Öncelikle GKE için gerekli hizmetleri etkinleştirin:
gcloud services enable container.googleapis.com
Autopilot GKE kümesi oluşturun:
CLUSTER_NAME=eventarc-cluster REGION=us-central1 gcloud container clusters create-auto $CLUSTER_NAME --region $REGION
Sonraki adıma geçmeden önce küme oluşturma işleminin tamamlandığından emin olun.
4. GKE hizmeti dağıtma
Bir hizmeti dağıtmadan önce, kubectl
ile kümeyle etkileşime geçmek için kimlik doğrulama kimlik bilgilerini alın:
gcloud container clusters get-credentials $CLUSTER_NAME \ --region $REGION
Ardından, Cloud Run'un hello container'ını GKE'de Kubernetes dağıtımı olarak dağıtın. Bu hizmet, alınan HTTP isteklerini ve CloudEvents'i günlüğe kaydeder:
SERVICE_NAME=hello-gke kubectl create deployment $SERVICE_NAME \ --image=gcr.io/cloudrun/hello
Dağıtımı dahili bir Kubernetes hizmeti olarak sunun. Bu işlem, küme içinde erişilebilen sabit bir IP'ye sahip bir hizmet oluşturur:
kubectl expose deployment $SERVICE_NAME \ --type ClusterIP --port 80 --target-port 8080
Sonraki adıma geçmeden önce kapsülün çalıştığından emin olun:
kubectl get pods NAME READY STATUS hello-gke-df6469d4b-5vv22 1/1 Running
Hizmeti şuradan da görebilirsiniz:
kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP hello-gke LoadBalancer 10.51.1.26 <none>
5. Eventarc'ı ayarlama
Bu adımda, Eventarc'ı ayarlama ve Eventarc GKE hedeflerini başlatma adımlarını uygulayacaksınız.
Öncelikle Eventarc ve Eventarc GKE hedefleri için gerekli hizmetleri etkinleştirin:
gcloud services enable eventarc.googleapis.com \ cloudresourcemanager.googleapis.com
Ardından, GKE kümelerini yönetmek için Eventarc'ı etkinleştirin:
gcloud eventarc gke-destinations init
Eventarc, bir GKE hizmetini hedefleyen her tetikleyici için ayrı bir etkinlik yönlendiricisi kapsayıcı oluşturur ve kümede değişiklik yapmak için açık izinler gerektirir. Bu işlem, özel bir hizmet hesabına kümedeki kaynakları yönetme izni verilerek yapılır. Bu işlemin Google Cloud projesi başına bir kez yapılması gerekir.
6. Etkinlik keşfi
Tetikleyici oluşturmadan önce etkinlik kaynaklarının ne olduğunu, yayınlayabilecekleri etkinlik türlerini ve bunları kullanmak için tetikleyicilerin nasıl yapılandırılacağını öğrenebilirsiniz.
Eventarc tarafından desteklenen etkinliklerle ilgili dokümanlar sayfasını inceleyebilirsiniz.Ayrıca gcloud
kullanarak etkinlikleri keşfedebilirsiniz.
Farklı etkinlik türlerinin listesini görmek için:
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.
Her bir etkinlik türü hakkında daha fazla bilgi edinmek için:
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
Belirli bir etkinlik türünü yayınlayan hizmetlerin listesini görmek için:
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
Her hizmetin yayınlayabileceği yöntem adlarının (alt etkinlikler) listesini görmek için:
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 tetikleyicisi oluşturma
Etkinlikleri alma yollarından biri Pub/Sub'dır. Herhangi bir uygulama Pub/Sub'a mesaj yayınlayabilir ve bu mesajlar Eventarc üzerinden hizmetlere dağıtılabilir.
Ayarlar
Tetikleyici oluşturmadan önce, tetikleyiciler tarafından kullanılacak bir hizmet hesabına ihtiyacınız vardır.
Hizmet hesabı oluşturun:
SERVICE_ACCOUNT=eventarc-gke-trigger-sa gcloud iam service-accounts create $SERVICE_ACCOUNT
Hizmet hesabına, GKE hedefleri olan tetikleyiciler için aşağıdaki roller verilmelidir:
roles/pubsub.subscriber
roles/monitoring.metricWriter
roles/eventarc.eventReceiver
(Yalnızca AuditLog tetikleyicileri için. Bu, daha sonraki bir adımda eklenecektir.)
Aşağıdaki rolleri verin:
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
Oluştur
Pub/Sub mesajlarını hizmetinize yönlendirmek için bir tetikleyici oluşturun:
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
Test
Tüm tetikleyicileri listeleyerek tetikleyicinin oluşturulup oluşturulmadığını kontrol edebilirsiniz:
gcloud eventarc triggers list
Pub/Sub tetikleyicisi, arka planda bir Pub/Sub konusu oluşturur. Bunu öğrenelim ve bir değişkene atayalım:
TOPIC_ID=$(gcloud eventarc triggers describe $TRIGGER_NAME --location $REGION --format='value(transport.pubsub.topic)')
Konuda mesaj yayınlamak için gcloud
simgesini kullanın:
gcloud pubsub topics publish $TOPIC_ID --message="Hello World"
Etkinliğin alınıp alınmadığını kontrol etmek için önce kapsül adını bulun:
kubectl get pods NAME READY STATUS hello-gke-df6469d4b-5vv22 1/1 Running
Ardından, sonucu bir değişkende saklayın:
POD_NAME=hello-gke-df6469d4b-5vv22
Alınan etkinliği doğrulamak için kapsülün günlüklerini kontrol edin:
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 tetikleyicisi oluşturma
Etkinlikleri Cloud Storage üzerinden de alabilirsiniz. Örneğin, bir uygulama bir dosyayı bir pakete yükleyebilir ve bu etkinlik Eventarc aracılığıyla hizmetlere dağıtılabilir.
Ayarlar
Cloud Storage tetikleyicisi oluşturmadan önce aşağıdaki kaynaklardan etkinlik almak için bir paket oluşturun:
BUCKET_NAME=eventarc-gcs-$PROJECT_ID gcloud storage buckets update gs://$BUCKET_NAME --location=$REGION
Cloud Storage tetikleyicileri için Cloud Storage hizmet hesabına pubsub.publisher
rolünü de eklemeniz gerekir:
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
Oluştur
Klasörden yeni dosya oluşturma etkinliklerini hizmetinize yönlendirmek için bir tetikleyici oluşturun:
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
Test
Tüm tetikleyicileri listeleyerek tetikleyicinin oluşturulup oluşturulmadığını kontrol edebilirsiniz:
gcloud eventarc triggers list
Bir dosya oluşturun ve dosyayı pakete yüklemek için gcloud storage
simgesini kullanın:
echo "Hello World" > random.txt gcloud storage cp random.txt gs://$BUCKET_NAME/random.txt
Alınan etkinliği doğrulamak için kapsülün günlüklerini kontrol edin:
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 tetikleyicisi oluşturma
Cloud Storage etkinliklerini dinlemek için Cloud Storage tetikleyicisi daha iyi bir yöntem olsa da bu adımda aynı işlemi yapmak üzere bir Cloud Audit Logging tetikleyicisi oluşturursunuz.
Ayarlar
Bir hizmetten etkinlik almak için Denetleme Günlüklerini etkinleştirmeniz gerekir. Google Cloud Console'da sol üstteki menüden IAM & Admin
ve Audit Logs
'yi seçin. Hizmetler listesinde Google Cloud Storage
'yi işaretleyin:
Sağ tarafta Admin
, Read
ve Write
'nin seçili olduğundan emin olun ve Save
'ı tıklayın:
Cloud Denetleme Günlükleri tetikleyicileri için tetikleyici hizmet hesabına eventarc.eventReceiver
rolünü de eklemeniz gerekir:
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member serviceAccount:$SERVICE_ACCOUNT@$PROJECT_ID.iam.gserviceaccount.com \ --role roles/eventarc.eventReceiver
Oluştur
Klasörden yeni dosya oluşturma etkinliklerini hizmetinize yönlendirmek için bir tetikleyici oluşturun:
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
Test
Denetleme Günlükleri tetikleyicilerinin başlatılması biraz zaman alır. Tüm tetikleyicileri listeleyerek tetikleyicinin oluşturulup oluşturulmadığını kontrol edebilirsiniz:
gcloud eventarc triggers list
Active
alanının Yes
olduğunu görürsünüz:
NAME TYPE DESTINATION ACTIVE trigger-auditlog-storage-gke google.cloud.audit.log.v1.written GKE: hello-gke Yes
Bir dosya oluşturun ve dosyayı pakete yüklemek için gcloud storage
simgesini kullanın:
echo "Hello World" > random.txt gcloud storage cp random.txt gs://$BUCKET_NAME/random.txt
Alınan etkinliği doğrulamak için kapsülün günlüklerini kontrol edin:
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. Tebrikler!
Codelab'i tamamladığınız için tebrikler.
İşlediğimiz konular
- GKE kümesi oluşturun.
- Etkinlik havuzu olarak bir GKE hizmeti oluşturun.
- Pub/Sub tetikleyicisi oluşturun.
- Cloud Storage tetikleyicisi oluşturun.
- Cloud Audit Logs tetikleyicisi oluşturun.