Eventarc etkinlikleriyle Kubernetes hizmetlerini tetikleme

1. Giriş

cb762f29e9183a3f.png

Eventarc, çeşitli hizmetleri (Cloud Run, Kubernetes, İş akışları) çeşitli kaynaklardan gelen etkinliklere bağlamayı kolaylaştırır. Mikro hizmetlerin serbest bağlantılı olduğu ve dağıtıldığı etkinlik odaklı mimariler derlemenize olanak tanır. Ayrıca sizin için etkinlik kullanımı, teslim, güvenlik, yetkilendirme ve hata gidermeyle de ilgilenir. Bu da geliştiricilerin çevikliğini ve uygulama esnekliğini artırır. Eventarc'a giriş için Eventarc codelab etkinlikleri ile Cloud Run'ı tetikleme sayfasına göz atın.

Bu codelab'de, Pub/Sub, Cloud Storage ve Cloud Denetleme Günlüklerindeki etkinlikleri okumak ve bunları Google Kubernetes Engine'de (GKE) ç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şturma
  • Pub/Sub tetikleyicisi oluşturun.
  • Cloud Storage tetikleyicisi oluşturma
  • Cloud Denetleme Günlükleri tetikleyicisi oluşturun.

2. Kurulum ve şartlar

Kendi hızınızda ortam kurulumu

  1. Google Cloud Console'da oturum açıp 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.

b35bf95b8bf3d5d8.png

a99b7ace416376c4.png

bd84a6d3004737c5.png

  • Proje adı, bu projenin katılımcıları için görünen addır. Google API'leri tarafından kullanılmayan bir karakter dizesidir. İstediğiniz zaman güncelleyebilirsiniz.
  • Proje Kimliği, tüm Google Cloud projelerinde benzersizdir ve değiştirilemez (belirlendikten sonra değiştirilemez). Cloud Console, otomatik olarak benzersiz bir dize oluşturur. bunun ne olduğunu umursamıyorsunuz. Çoğu codelab'de proje kimliğini (genellikle PROJECT_ID olarak tanımlanır) referans almanız gerekir. Oluşturulan kimliği beğenmezseniz rastgele bir kimlik daha oluşturabilirsiniz. Alternatif olarak, kendi ölçümünüzü deneyip mevcut olup olmadığına bakabilirsiniz. Bu adımdan sonra değiştirilemez ve proje süresince kalır.
  • Bilginiz için bazı API'lerin kullandığı üçüncü bir değer, yani Proje Numarası daha vardır. Bu değerlerin üçü hakkında daha fazla bilgiyi belgelerde bulabilirsiniz.
  1. Sonraki adımda, Cloud kaynaklarını/API'lerini kullanmak için Cloud Console'da faturalandırmayı etkinleştirmeniz gerekir. Bu codelab'i çalıştırmanın maliyeti, yüksek değildir. Bu eğitim dışında faturalandırma yapılmaması için kaynakları kapatmak isterseniz oluşturduğunuz kaynakları silebilir veya projenin tamamını silebilirsiniz. Yeni Google Cloud kullanıcıları, 300 ABD doları değerindeki ücretsiz denemeden yararlanabilir.

Cloud Shell'i başlatma

Google Cloud dizüstü bilgisayarınızdan uzaktan çalıştırılabilse de bu codelab'de, 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 bulunan Cloud Shell simgesini tıklayın:

55efc1aaa7a4d3ad.png

Ortamı sağlamak ve bağlamak yalnızca birkaç dakika sürer. Tamamlandığında şuna benzer bir sonuç görmeniz gerekir:

7ffe5cbb04455448

İhtiyacınız olan tüm geliştirme araçlarını bu sanal makinede bulabilirsiniz. 5 GB boyutunda kalıcı bir ana dizin sunar ve Google Cloud üzerinde çalışarak ağ performansını ve kimlik doğrulamasını büyük ölçüde iyileştirir. Bu codelab'deki tüm çalışmalarınız tarayıcıda yapılabilir. Herhangi 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 aracılığıyla kümeyle etkileşime geçmek için kimlik doğrulama kimlik bilgilerini alın:

gcloud container clusters get-credentials $CLUSTER_NAME \
    --region $REGION

Şimdi, Cloud Run'ın hello container'ını GKE'de Kubernetes dağıtımı olarak dağıtın. Bu hizmet günlükleri, alınan HTTP istekleri ve CloudEvent'leridir:

SERVICE_NAME=hello-gke

kubectl create deployment $SERVICE_NAME \
    --image=gcr.io/cloudrun/hello

Dağıtımı dahili Kubernetes hizmeti olarak kullanıma sunun. Bu işlem, küme içinden erişilebilen sabit IP'ye sahip bir hizmet oluşturur:

kubectl expose deployment $SERVICE_NAME \
  --type ClusterIP --port 80 --target-port 8080

Bir 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

Ayrıca hizmeti şu şekilde de görebilirsiniz:

kubectl get svc

NAME         TYPE           CLUSTER-IP    EXTERNAL-IP
hello-gke    LoadBalancer   10.51.1.26    <none>

5. Eventarc'ı Kur

Bu adımda, Eventarc'ı kurmak ve Eventarc GKE hedeflerini başlatmak için adımları uygulayacaksınız.

İlk olarak 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, GKE hizmetini hedefleyen her tetikleyici için ayrı bir Event Yönlendirici kapsülü oluşturur ve kümede değişiklik yapmak için açık izinlere ihtiyaç duyar. Bu işlem, kümedeki kaynakları yönetmesi için özel bir hizmet hesabına izinlerin verilmesiyle gerçekleştirilir. Bu işlemin her Google Cloud projesi için bir kez yapılması gerekir.

6. Etkinlik keşfi

Tetikleyici oluşturmadan önce etkinlik kaynaklarının neler olduğunu, bunların yayınlayabilecekleri etkinlik türlerini ve tetikleyicileri kullanacak şekilde nasıl yapılandıracağınızı keşfedebilirsiniz.

Eventarc'ın desteklediği etkinlikler için belgeler sayfasına göz atabilirsiniz.gcloud kullanarak da etkinlikleri inceleyebilirsiniz.

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 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 bir 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

Etkinlik almanın bir yolu da Pub/Sub'dır. Tüm uygulamalar Pub/Sub'a mesaj yayınlayabilir ve bu mesajlar, Eventarc üzerinden hizmetlere teslim edilebilir.

Ayarlar

Tetikleyici oluşturmadan önce, tetikleyiciler tarafından kullanılacak bir hizmet hesabına ihtiyacınız vardır.

Bir hizmet hesabı oluşturun:

SERVICE_ACCOUNT=eventarc-gke-trigger-sa

gcloud iam service-accounts create $SERVICE_ACCOUNT

GKE hedeflerine sahip tetikleyiciler için hizmet hesabına aşağıdaki roller verilmelidir:

  • roles/pubsub.subscriber
  • roles/monitoring.metricWriter
  • roles/eventarc.eventReceiver (Yalnızca AuditLog tetikleyicileri için. Bu, sonraki bir adımda eklenecektir)

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 etme

Tüm tetikleyicileri listeleyerek tetikleyicinin oluşturulup oluşturulmadığını kontrol edebilirsiniz:

gcloud eventarc triggers list

Pub/Sub tetikleyicisi, kapakların altında bir Pub/Sub konusu oluşturur. Şimdi bunu bulalım ve bir değişkene atayalım:

TOPIC_ID=$(gcloud eventarc triggers describe $TRIGGER_NAME --location $REGION --format='value(transport.pubsub.topic)')

Konuda bir mesaj yayınlamak için gcloud öğesini 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

Ve bunu bir değişkende depolayın:

POD_NAME=hello-gke-df6469d4b-5vv22 

Alınan etkinliği doğrulamak için kapsül 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 almanın bir diğer yolu da Cloud Storage'dır. Örneğin, bir uygulama pakete dosya yükleyebilir ve bu etkinlik, Eventarc üzerinden hizmetlere yayınlanabilir.

Ayarlar

Cloud Storage tetikleyicisi oluşturmadan önce aşağıdaki kaynaklardan etkinlik alacak bir paket oluşturun:

BUCKET_NAME=eventarc-gcs-$PROJECT_ID
gsutil mb -l $REGION gs://$BUCKET_NAME

Cloud Storage tetikleyicileri için Cloud Storage hizmet hesabına pubsub.publisher rolünü de eklemeniz gerekir:

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

Oluştur

Yeni dosya oluşturma etkinliklerini paketten 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 etme

Tüm tetikleyicileri listeleyerek tetikleyicinin oluşturulup oluşturulmadığını kontrol edebilirsiniz:

gcloud eventarc triggers list

Bir dosya oluşturun ve gsutil dosyasını kullanarak dosyayı pakete yükleyin:

echo "Hello World" > random.txt
gsutil cp random.txt gs://$BUCKET_NAME/random.txt

Alınan etkinliği doğrulamak için kapsül 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 Denetleme Günlükleri tetikleyicisi oluşturma

Cloud Storage tetikleyicisi, Cloud Storage etkinliklerini dinlemenin daha iyi bir yolu olsa da bu adımda, aynı işlemi yapmak için bir Cloud Denetleme Günlüğü tetikleyicisi oluşturacaksınız.

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'i işaretleyin:

91d1bcef8f953fe3.png

Sağ tarafta Admin, Read ve Write öğelerinin seçili olduğundan emin olun ve Save'i tıklayın:

ccb31db1e55fd2e3.png

Cloud Denetleme Günlükleri tetikleyicileri için tetikleyici hizmet hesabına eventarc.eventReceiver rolü 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

Yeni dosya oluşturma etkinliklerini paketten 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 etme

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öreceksiniz:

NAME                          TYPE                                           DESTINATION     ACTIVE
trigger-auditlog-storage-gke  google.cloud.audit.log.v1.written              GKE: hello-gke  Yes

Bir dosya oluşturun ve gsutil dosyasını kullanarak dosyayı pakete yükleyin:

echo "Hello World" > random.txt
gsutil cp random.txt gs://$BUCKET_NAME/random.txt

Alınan etkinliği doğrulamak için kapsül 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şturma
  • Pub/Sub tetikleyicisi oluşturun.
  • Cloud Storage tetikleyicisi oluşturun.
  • Cloud Denetleme Günlükleri tetikleyicisi oluşturun.