1. Введение
Eventarc позволяет легко подключать различные сервисы (Cloud Run, Kubernetes, Workflows) к событиям из различных источников. Он позволяет вам создавать архитектуры, управляемые событиями, в которых микросервисы слабо связаны и распределены. Он также заботится о приеме событий, доставке, безопасности, авторизации и обработке ошибок, что повышает гибкость разработчиков и устойчивость приложений. Ознакомьтесь с Trigger Cloud Run с событиями из Eventarc codelab для введения в Eventarc.
В этой лабораторной работе вы будете использовать Eventarc для чтения событий из журналов Pub/Sub, Cloud Storage и Cloud Audit, а также передавать их в службу Kubernetes, работающую на Google Kubernetes Engine (GKE).
Чему вы научитесь
- Создайте кластер GKE.
- Создайте службу GKE как приемник событий.
- Создайте триггер Pub/Sub.
- Создайте триггер облачного хранилища
- Создайте триггер журналов аудита облака.
2. Настройка и требования
Самостоятельная настройка среды
- Войдите в Google Cloud Console и создайте новый проект или повторно используйте существующий. Если у вас еще нет учетной записи Gmail или Google Workspace, вам необходимо ее создать .
- Имя проекта — отображаемое имя для участников этого проекта. Это строка символов, не используемая API Google. Вы можете обновить ее в любое время.
- Идентификатор проекта уникален для всех проектов Google Cloud и неизменяем (его нельзя изменить после установки). Cloud Console автоматически генерирует уникальную строку; обычно вам все равно, что это такое. В большинстве кодовых лабораторий вам нужно будет ссылаться на идентификатор проекта (обычно он идентифицируется как
PROJECT_ID
). Если вам не нравится сгенерированный идентификатор, вы можете сгенерировать другой случайный идентификатор. В качестве альтернативы вы можете попробовать свой собственный и посмотреть, доступен ли он. Его нельзя изменить после этого шага, и он останется на протяжении всего проекта. - Для вашего сведения, есть третье значение, Project Number , которое используют некоторые API. Узнайте больше обо всех трех этих значениях в документации .
- Далее вам нужно будет включить биллинг в Cloud Console для использования ресурсов/API 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
Создайте кластер 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
Прежде чем перейти к следующему шагу, убедитесь, что модуль запущен:
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 создает отдельный Event Forwarder 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"
Чтобы проверить, получено ли событие, сначала найдите имя модуля:
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. Например, приложение может загрузить файл в контейнер, и это событие может быть доставлено службам через Eventarc.
Настраивать
Перед созданием триггера облачного хранилища создайте контейнер для получения событий из:
BUCKET_NAME=eventarc-gcs-$PROJECT_ID gcloud storage buckets update gs://$BUCKET_NAME --location=$REGION
Вам также необходимо добавить роль pubsub.publisher
в учетную запись службы Cloud Storage для триггеров Cloud Storage:
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 Storage — лучший способ прослушивания событий Cloud Storage, на этом этапе вы создаете триггер Cloud Audit Log, который будет делать то же самое.
Настраивать
Чтобы получать события от сервиса, вам необходимо включить Audit Logs. В Google Cloud Console выберите IAM & Admin
и Audit Logs
в верхнем левом меню. В списке сервисов отметьте Google Cloud Storage
:
С правой стороны убедитесь, что выбраны Admin
, Read
и Write
, и нажмите Save
:
Вам также необходимо добавить роль 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
Тест
Инициализация триггеров Audit Logs занимает некоторое время. Вы можете проверить, что триггер создан, перечислив все триггеры:
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.
- Создайте триггер облачного хранилища.
- Создайте триггер журналов аудита облака.