Запуск рабочих процессов с помощью Eventarc

1. Обзор

В этой лабораторной работе вы создадите триггер Eventarc, который свяжет тему Pub/Sub со службой Workflows. Eventarc позволяет разделить взаимодействие между службами, делая ваше решение более расширяемым и событийно-ориентированным. Вы создадите рабочий процесс, включающий несколько шагов для выполнения бизнес-процесса по расчету бонусных баллов клиентов за заказы в Cymbal Eats. Рабочий процесс будет вызывать API частной службы Cloud Run для выполнения бизнес-логики. Служба Cloud Run настроена на разрешение только внутреннего трафика и требует аутентификации. Рабочий процесс опубликует сообщение в тему Pub/Sub, чтобы уведомить службу заказов о рассчитанных бонусных баллах.

c6d4337a47b55333.png

Что такое Eventarc?

Eventarc позволяет создавать архитектуры, управляемые событиями, без необходимости внедрения, настройки или обслуживания базовой инфраструктуры. Eventarc предлагает стандартизированное решение для управления потоком изменений состояния, называемых событиями, между децентрализованными микросервисами. При срабатывании Eventarc направляет эти события через подписки Pub/Sub в различные места назначения (например, рабочие процессы или Cloud Run), одновременно управляя доставкой, безопасностью, авторизацией, наблюдаемостью и обработкой ошибок.

Поставщики событий Google

  • Более 90 провайдеров Google Cloud. Эти провайдеры отправляют события либо напрямую из источника (например, Cloud Storage), либо через записи в журналах аудита Cloud.
  • Поставщики Pub/Sub. Эти поставщики отправляют события в Eventarc, используя сообщения Pub/Sub.

Сторонние поставщики

Сторонние поставщики — это организации, не входящие в Google, которые предоставляют источник данных Eventarc.

Триггеры Eventarc

  • События Cloud Pub/Sub. Eventarc может запускаться сообщениями, опубликованными в темы Pub/Sub.
  • События журналов аудита облака (CAL). Журналы аудита облака предоставляют журналы аудита действий администратора и доступа к данным для каждого облачного проекта, папки и организации.
  • Прямые события. Eventarc может запускаться различными прямыми событиями, такими как обновление хранилища Cloud Storage или обновление шаблона Firebase Remote Config.

Места проведения мероприятий

c7ca054200edf1b3.png

Что такое рабочие процессы?

Workflows — это полностью управляемый сервис, позволяющий интегрировать микросервисы, задачи и API. Workflows — это бессерверный сервис, масштабируемый в соответствии с вашими потребностями.

Варианты использования рабочих процессов:

  • Рабочие процессы, управляемые событиями, выполняются по заданным триггерам. Например, когда оформляется новый заказ и вы хотите рассчитать баллы лояльности клиента. Или когда заказ отменяется, событие может быть опубликовано, и все заинтересованные сервисы обработают его.
  • Пакетные задания запускают задачи на регулярной основе с помощью Cloud Scheduler. Например, ночное задание для проверки пунктов меню на наличие ошибок и их удаления.

Workflows идеально подходит для рабочих процессов, которые управляют сервисами. Вы можете автоматизировать процессы, включающие ожидание и повторные попытки, на срок до одного года.

Преимущества рабочих процессов:

  • Конфигурация важнее кода: сократите технический долг, перенеся логику в конфигурацию, а не в написание кода.
  • Упростите свою архитектуру. Stateful Workflows позволяют визуализировать и отслеживать сложные интеграции сервисов без дополнительных зависимостей.
  • Обеспечьте надежность и отказоустойчивость. Контролируйте сбои с помощью стандартной или пользовательской логики повторных попыток и обработки ошибок, даже если другие системы дают сбой — сохраняя контрольные точки на каждом этапе в Cloud Spanner, вы сможете отслеживать ход выполнения.
  • Никакого обслуживания. Масштабирование по мере необходимости: ничего не нужно обновлять или обслуживать. Платите только тогда, когда ваши рабочие процессы выполняются, без каких-либо затрат во время ожидания или простоя.

В этой лабораторной работе вы настроите рабочий процесс, управляемый событиями.

Что вы узнаете

В этой лабораторной работе вы научитесь выполнять следующие действия:

  • Настройте тему Pub/Sub и Eventarc для запуска рабочих процессов.
  • Настройте рабочий процесс для вызова сервиса Cloud Run и публикации сообщений в Pub/Sub.
  • Как запрашивать структурированные журналы рабочих процессов в Cloud Logging и с помощью CLI gcloud.

Предварительные требования

  • Для выполнения этой лабораторной работы предполагается знакомство со средами Cloud Console и Cloud Shell.
  • Опыт работы с Cloud Run и Cloud Pub/Sub приветствуется, но не является обязательным.

2. Настройка и требования

Настройка облачного проекта

  1. Войдите в консоль Google Cloud и создайте новый проект или используйте существующий. Если у вас еще нет учетной записи Gmail или Google Workspace, вам необходимо ее создать .

b35bf95b8bf3d5d8.png

a99b7ace416376c4.png

bd84a6d3004737c5.png

  • Название проекта — это отображаемое имя участников данного проекта. Это строка символов, не используемая API Google. Вы можете изменить её в любое время.
  • Идентификатор проекта уникален для всех проектов Google Cloud и является неизменяемым (его нельзя изменить после установки). Консоль Cloud автоматически генерирует уникальную строку; обычно вам неважно, какая она. В большинстве практических заданий вам потребуется указать идентификатор проекта (обычно он обозначается как PROJECT_ID ). Если сгенерированный идентификатор вас не устраивает, вы можете сгенерировать другой случайный идентификатор. В качестве альтернативы вы можете попробовать свой собственный и посмотреть, доступен ли он. После этого шага его нельзя изменить, и он останется неизменным на протяжении всего проекта.
  • К вашему сведению, существует третье значение — номер проекта , который используется некоторыми API. Подробнее обо всех трех значениях можно узнать в документации .
  1. Далее вам потребуется включить оплату в консоли Cloud для использования ресурсов/API Cloud. Выполнение этого практического задания не должно стоить дорого, если вообще что-либо. Чтобы отключить ресурсы и избежать дополнительных расходов после завершения этого урока, вы можете удалить созданные ресурсы или удалить весь проект. Новые пользователи Google Cloud имеют право на бесплатную пробную версию стоимостью 300 долларов США .

Настройка среды

Активируйте Cloud Shell, нажав на значок справа от строки поиска.

eb0157a992f16fa3.png

Клонируйте репозиторий, перейдите в нужную директорию, скопируйте и вставьте приведенную ниже команду в терминал и нажмите Enter:

git clone https://github.com/GoogleCloudPlatform/cymbal-eats.git && cd cymbal-eats/customer-service

Для развертывания необходимых зависимостей запустите скрипт lab-setup.sh

Будут созданы следующие ресурсы:

  • Кластер и экземпляр AlloyDB
  • Реестр артефактов для хранения образов контейнеров для заданий Cloud Run и службы поддержки клиентов.
  • Коннектор VPC Access для Cloud Run Service и Job для взаимодействия с базой данных AlloyDB.
  • Задание Cloud Run для создания базы данных AlloyDB
  • Cloud Run Customer Service — микросервис на Java, использующий фреймворк Quarkus .
./lab-setup.sh

Если появится запрос на авторизацию, нажмите «Авторизовать», чтобы продолжить.

6356559df3eccdda.png

Настройка займет около 10 минут.

Дождитесь завершения выполнения скрипта и появления приведенного ниже результата, прежде чем приступать к следующим шагам.

Deploying container to Cloud Run service [customer-service] in project [cymbal-eats-19227-5681] region [us-east1]
OK Deploying new service... Done.                                                   
  OK Creating Revision...
  OK Routing traffic...
Done.
Service [customer-service] revision [customer-service-00001-mid] has been deployed and is serving 100 percent of traffic.
Service URL: https://customer-service-e4p5zon5rq-ue.a.run.app

Вы можете перейти к следующему разделу, а затем вернуться и продолжить с следующего шага.

3. Проверка рабочего процесса

Основные концепции рабочих процессов

Рабочий процесс состоит из последовательности шагов, описанных с использованием синтаксиса рабочих процессов ( YAML или JSON ).

После создания рабочего процесса он развертывается , что делает его готовым к выполнению.

Выполнение — это однократный запуск логики, содержащейся в определении рабочего процесса. Рабочий процесс, который не был выполнен, не влечет за собой никаких затрат. Все выполнения рабочих процессов независимы друг от друга, а быстрое масштабирование продукта позволяет осуществлять большое количество одновременных выполнений.

Контроль исполнения

  • Шаги — Для создания рабочего процесса необходимо определить желаемые steps и порядок выполнения, используя синтаксис «Рабочие процессы». Каждый рабочий процесс должен содержать как минимум один шаг.
  • Условия — Вы можете использовать блок switch в качестве механизма выбора, позволяющего значению выражения управлять ходом выполнения рабочего процесса.
  • Итерации — Вы можете использовать цикл for для перебора последовательности чисел или набора данных, таких как список или карта.
  • Вложенные рабочие процессы — Вложенный рабочий процесс работает аналогично подпрограмме или функции в языке программирования, позволяя инкапсулировать шаг или набор шагов, которые ваш рабочий процесс будет повторять несколько раз.

Запуск выполнения

  • Ручной режим — Вы можете управлять рабочими процессами как из консоли Google Cloud, так и из командной строки с помощью Google Cloud CLI.
  • Программное управление — для управления рабочими процессами можно использовать облачные клиентские библиотеки для API рабочих процессов или REST API.
  • Запланированные запуски — Вы можете использовать Cloud Scheduler для запуска рабочего процесса по заданному расписанию.

Аргументы времени выполнения

Данные, передаваемые во время выполнения, можно получить доступ, добавив поле params в основной рабочий процесс (размещенный в главном блоке). Главный блок принимает один аргумент, представляющий собой любой допустимый тип данных JSON. Поле params задает имя переменной, которую рабочий процесс использует для хранения передаваемых данных.

Рабочий процесс аутентификации облачной службы

Приложение "Служба поддержки клиентов" — это пример приложения, включенный в этот репозиторий, которое работает на Cloud Run и настроено на обработку аутентифицированных запросов только из внутренних сетей. Вам потребуется настроить рабочие процессы для добавления подписанного Google токена OpenID Connect (OIDC) к запросу для аутентификации в службе Cloud Run.

Для получения более подробной информации об аутентификации между сервисами ознакомьтесь с документацией.

Аутентификация рабочего процесса настраивается в блоке args с использованием раздела auth .

rewardsWorkflow.yaml.tmpl

   - create_customer:
        call: http.post
        args:
          url: CUSTOMER_SERVICE_URL/customer
          auth:
            type: OIDC

Логика рабочего процесса

Если клиент отсутствует, этот рабочий процесс выполнит вызов API для создания клиента, а затем обновит бонусные баллы. В зависимости от общей суммы заказа рабочий процесс выберет множитель для расчета бонусных баллов для клиента. Подробности см. в примере ниже.

  - calculate_multiplier:
        switch:
          - condition: ${totalAmount < 10}
            steps:
              - set_multiplier1:
                  assign:
                    - multiplier: 2
          - condition: ${totalAmount >= 10 and totalAmount < 25}
            steps:
              - set_multiplier2:
                  assign:
                    - multiplier: 3
          - condition: ${totalAmount >= 25}
            steps:
              - set_multiplier3:
                  assign:
                    - multiplier: 5
    - calculate_rewards:
        assign:
            - rewardPoints: ${customerRecord.rewardPoints * multiplier}

fcd91b2bc5d60347.png

4. Настройка и развертывание рабочего процесса

Настройка переменных среды:

export REGION=us-east1

export CUSTOMER_SERVICE_URL=$(gcloud run services describe customer-service \
  --platform managed \
  --region $REGION \
  --format=json | jq \
  --raw-output ".status.url")

echo $CUSTOMER_SERVICE_URL

Замените URL-адрес сервиса в шаблоне рабочего процесса:

sed "s@CUSTOMER_SERVICE_URL@$CUSTOMER_SERVICE_URL@g" rewardsWorkflow.yaml.tmpl > rewardsWorkflow.yaml

Укажите местоположение переменных среды службы и проекта Workflows:

gcloud config set workflows/location ${REGION}

export PROJECT_ID=$(gcloud config get-value project)
export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='value(projectNumber)')
export PROJECT_NAME=$(gcloud projects describe $PROJECT_ID --format='value(name)')

Создайте пользовательскую учетную запись службы для рабочего процесса со следующими правами доступа:

  • Вызов службы Cloud Run
  • API для регистрации звонков
  • Публиковать сообщения в тему PubSub
export WORKFLOW_SERVICE_ACCOUNT=workflows-cloudrun-sa

gcloud iam service-accounts create ${WORKFLOW_SERVICE_ACCOUNT}

gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member "serviceAccount:${WORKFLOW_SERVICE_ACCOUNT}@$PROJECT_ID.iam.gserviceaccount.com" \
  --role "roles/run.invoker"

gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member "serviceAccount:${WORKFLOW_SERVICE_ACCOUNT}@$PROJECT_ID.iam.gserviceaccount.com" \
  --role "roles/logging.logWriter"

gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member "serviceAccount:${WORKFLOW_SERVICE_ACCOUNT}@$PROJECT_ID.iam.gserviceaccount.com" \
  --role "roles/pubsub.publisher"

Разверните рабочий процесс. Рабочий процесс настроен на использование учетной записи службы, созданной на предыдущем шаге:

export WORKFLOW_NAME=rewardsWorkflow

gcloud workflows deploy ${WORKFLOW_NAME} \
  --source=rewardsWorkflow.yaml \
  --service-account=${WORKFLOW_SERVICE_ACCOUNT}@$PROJECT_ID.iam.gserviceaccount.com

Проверьте источник рабочего процесса и другие детали (вкладка «Триггеры»). В данный момент для выполнения этого рабочего процесса не настроены триггеры. Вы настроите их на следующем шаге.

d3527393fb07a9b3.png

5. Настройте темы Pub/Sub и триггер Eventarc.

Далее вам нужно будет создать две темы Pub/Sub и настроить один триггер Eventarc.

Служба обработки заказов будет публиковать сообщения в order-topic с информацией о новых заказах.

Рабочий процесс будет публиковать сообщения в order-points-topic с информацией о бонусных баллах за заказ и общей сумме. Сервис заказов (не являющийся частью данной лабораторной работы) предоставляет конечную точку, которая используется подпиской Push на order-points-topic, для обновления бонусных баллов и общей суммы по каждому заказу.

Создание новых тем Pub/Sub:

export TOPIC_ID=order-topic
export ORDER_POINTS_TOPIC_ID=order-points-topic
gcloud pubsub topics create $TOPIC_ID --project=$PROJECT_ID
gcloud pubsub topics create $ORDER_POINTS_TOPIC_ID --project=$PROJECT_ID

Укажите местоположение для сервиса Eventarc:

gcloud config set eventarc/location ${REGION}

Создайте пользовательскую учетную запись службы, которая будет использоваться триггером Eventarc для выполнения рабочих процессов.

export TRIGGER_SERVICE_ACCOUNT=eventarc-workflow-sa

gcloud iam service-accounts create ${TRIGGER_SERVICE_ACCOUNT}

Предоставьте учетной записи службы доступ для выполнения рабочих процессов.

gcloud projects add-iam-policy-binding ${PROJECT_ID} \
  --member="serviceAccount:${TRIGGER_SERVICE_ACCOUNT}@${PROJECT_ID}.iam.gserviceaccount.com" \
  --role="roles/workflows.invoker"

Создайте триггер Eventarc для прослушивания сообщений Pub/Sub и их доставки в рабочие процессы.

gcloud eventarc triggers create new-orders-trigger \
  --destination-workflow=${WORKFLOW_NAME} \
  --destination-workflow-location=${REGION} \
  --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" \
  --service-account="${TRIGGER_SERVICE_ACCOUNT}@${PROJECT_ID}.iam.gserviceaccount.com" \
  --transport-topic=$TOPIC_ID

Пример выходных данных:

Creating trigger [new-orders-trigger] in project [qwiklabs-gcp-01-1a990bfcadb3], location [us-east1]...done.     
Publish to Pub/Sub topic [projects/qwiklabs-gcp-01-1a990bfcadb3/topics/order-topic] to receive events in Workflow [rewardsWorkflow].
WARNING: It may take up to 2 minutes for the new trigger to become active.

В обзоре создан триггер Eventarc .

bda445561ad5f4.png

Проверка создала подписку для триггера.

3fccdda7d5526597.png

Проанализированы изменения в рабочем процессе . Добавлен новый триггер.

23d338abc16eaac8.png

6. Процесс тестирования

c6d4337a47b55333.png

Для имитации работы службы обработки заказов вам потребуется отправлять сообщения в топик Pub/Sub из Cloud Shell и проверять журналы службы Cloud Run Customer в консоли Cloud.

export TOPIC_ID=order-topic
gcloud pubsub topics publish $TOPIC_ID --message '{"userId":"id1","orderNumber":123456,"name":"Angela Jensen","email":"ajensen9090+eats@gmail.com","address":"1845 Denise St","city":"Mountain View","state":"CA","zip":"94043","orderItems":[{"id":7,"createDateTime":"2022-03-17T21:51:44.968584","itemImageURL":"https://images.unsplash.com/photo-1618449840665-9ed506d73a34?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=687&q=80","itemName":"Curry Plate","itemPrice":12.5,"itemThumbnailURL":"https://images.unsplash.com/photo-1618449840665-9ed506d73a34?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=687&q=80","spiceLevel":0,"status":"Ready","tagLine":"Spicy touch for your taste buds","updateDateTime":"2022-03-18T01:30:29.340584","inventory":8,"quantity":1}]}'

Пример выходных данных:

messageIds:
- '5063709859203105'

Просмотрите подробные сведения о выполнении рабочего процесса и журналы .

1e802826c700cc3e.png

aad0eae7a970316.png

7. Структурированное ведение журналов рабочих процессов

Рабочий процесс настроен на запись структурированных логов в формате JSON. Логи записываются с использованием API Cloud Logging, ресурса workflows.googleapis.com/Workflow и под именем файла projects/${PROJECT_ID}/logs/Workflows .

Ознакомьтесь с настройками ведения журналов ниже.

    - log_totalAmount:
        call: sys.log
        args:
            json:
              orderNumber: ${order.orderNumber}
              totalAmount: ${totalAmount}
              multiplier: ${multiplier}
              totalRewardPoints: ${rewardPoints}
              orderRewardPoints: ${orderRewardPoints}
            severity: INFO

Откройте Logs Explorer в консоли и выполните запрос для получения информации об обработанных заказах с общей суммой более 2 долларов.

Воспользуйтесь приведенным ниже запросом, заменив идентификатор проекта ( qwiklabs-gcp-01-1a990bfcadb3 ) на идентификатор вашего текущего проекта:

resource.type="workflows.googleapis.com/Workflow" AND 
logName=projects/qwiklabs-gcp-01-1a990bfcadb3/logs/Workflows AND 
jsonPayload.totalAmount > 2 AND 
timestamp >= "2022-11-01T23:59:59Z" AND 
timestamp <= "2023-11-05T00:00:00Z"

Пример выходных данных:

22d2f4686c58724d.png

Откройте Cloud Shell и используйте интерфейс командной строки gcloud для чтения журналов с помощью приведенных ниже команд.

Замените идентификатор проекта ( qwiklabs-gcp-01-1a990bfcadb3 ) на идентификатор вашего текущего проекта.

gcloud logging read 'resource.type="workflows.googleapis.com/Workflow" AND logName=projects/qwiklabs-gcp-01-1a990bfcadb3/logs/Workflows AND jsonPayload.totalAmount > 2 AND timestamp >= "2022-11-01T23:59:59Z" AND timestamp <= "2023-11-05T00:00:00Z"' --limit 10 --format="table(jsonPayload.orderNumber,jsonPayload.totalAmount,jsonPayload.orderRewardPoints,jsonPayload.totalRewardPoints,jsonPayload.multiplier)"

Пример вывода в table формате:

35d5fd851ecde60.png

Замените идентификатор проекта ( qwiklabs-gcp-01-1a990bfcadb3 ) на идентификатор вашего текущего проекта.

gcloud logging read 'resource.type="workflows.googleapis.com/Workflow" AND logName=projects/qwiklabs-gcp-01-1a990bfcadb3/logs/Workflows AND jsonPayload.totalAmount > 2 AND timestamp >= "2022-11-01T23:59:59Z" AND timestamp <= "2023-11-05T00:00:00Z"' --limit 10 --format=json | jq

Пример выходных данных в формате json :

ac7421548ea9a9f2.png

8. Проверка клиентских записей

(Необязательные шаги) В настоящий момент customer-service настроена на прием трафика только из внутренних сетей.

Выполните приведенные ниже команды, чтобы сохранить URL-адрес сервиса и связаться со службой поддержки клиентов.

export REGION=us-east1
CUSTOMER_SERVICE_URL=$(gcloud run services describe customer-service \
    --region=$REGION \
    --format=json | jq \
    --raw-output ".status.url")

curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" $CUSTOMER_SERVICE_URL/customer

Вы получите сообщение об ошибке, указывающее на запрет доступа.

<html><head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>403 Forbidden</title>
</head>
<body text=#000000 bgcolor=#ffffff>
<h1>Error: Forbidden</h1>
<h2>Access is forbidden.</h2>
<h2></h2>
</body></html>

Чтобы просмотреть существующие записи о клиентах, измените настройки входящего трафика customer-service Cloud Run на параметр « Allow all traffic » и нажмите «Сохранить».

Это сделает конечную точку общедоступной, и вы сможете вызывать API службы поддержки клиентов из Cloud Shell с помощью curl.

9156e0eb0a19bc68.png

Выполните приведенные ниже команды, чтобы сохранить URL-адрес сервиса и получить список существующих клиентов.

CUSTOMER_SERVICE_URL=$(gcloud run services describe customer-service \
    --region=$REGION \
    --format=json | jq \
    --raw-output ".status.url")

curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" $CUSTOMER_SERVICE_URL/customer | jq

Пример выходных данных:

[
  {
    "id": "id1",
    "rewardPoints": 3,
    "address": "1845 Denise St",
    "city": "Mountain View",
    "createDateTime": "2022-11-11T15:56:45.487566",
    "email": "ajensen9090+eats@gmail.com",
    "name": "Angela Jensen",
    "state": "CA",
    "updateDateTime": "2022-11-11T15:56:45.866125",
    "zip": "94043"
  }
]

Выполните команду для публикации нового заказа несколько раз и проверьте бонусные баллы клиента с помощью команды curl.

Опубликовать сообщение о новом заказе:

export TOPIC_ID=order-topic
gcloud pubsub topics publish $TOPIC_ID --message '{"userId":"id1","orderNumber":123456,"name":"Angela Jensen","email":"ajensen9090+eats@gmail.com","address":"1845 Denise St","city":"Mountain View","state":"CA","zip":"94043","orderItems":[{"id":7,"createDateTime":"2022-03-17T21:51:44.968584","itemImageURL":"https://images.unsplash.com/photo-1618449840665-9ed506d73a34?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=687&q=80","itemName":"Curry Plate","itemPrice":12.5,"itemThumbnailURL":"https://images.unsplash.com/photo-1618449840665-9ed506d73a34?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=687&q=80","spiceLevel":0,"status":"Ready","tagLine":"Spicy touch for your taste buds","updateDateTime":"2022-03-18T01:30:29.340584","inventory":8,"quantity":1}]}'

Подтверждение начисления бонусных баллов клиентам:

curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" $CUSTOMER_SERVICE_URL/customer | jq

Проверьте журналы. Замените идентификатор проекта ( qwiklabs-gcp-01-1a990bfcadb3 ) на идентификатор вашего текущего проекта.

gcloud logging read 'resource.type="workflows.googleapis.com/Workflow" AND logName=projects/qwiklabs-gcp-01-1a990bfcadb3/logs/Workflows AND jsonPayload.totalAmount > 2 AND timestamp >= "2022-11-01T23:59:59Z" AND timestamp <= "2023-11-05T00:00:00Z"' --limit 10 --format="table(jsonPayload.orderNumber,jsonPayload.totalAmount,jsonPayload.orderRewardPoints,jsonPayload.totalRewardPoints,jsonPayload.multiplier)"

9. Поздравляем!

Поздравляем, вы завершили практическое занятие!

Что мы рассмотрели:

  • Как настроить рабочие процессы
  • Как настроить триггер Eventarc для рабочих процессов
  • Как вызвать службу Cloud Run из рабочих процессов
  • Как запрашивать структурированные журналы в Cloud Logging и с помощью CLI gcloud.

Что дальше:

Ознакомьтесь с другими обучающими материалами Cymbal Eats:

Уборка

Чтобы избежать списания средств с вашего аккаунта Google Cloud за ресурсы, используемые в этом руководстве, либо удалите проект, содержащий эти ресурсы, либо сохраните проект и удалите отдельные ресурсы.

Удаление проекта

Самый простой способ избежать выставления счетов — удалить проект, созданный для этого урока.