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

1. Обзор

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

c6d4337a47b55333.png

Что такое Эвентарк?

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.

Направления мероприятий

  • Рабочие процессы
  • Облачный бег
  • ГКЭ
  • Облачные функции ( 2-го поколения )

c7ca054200edf1b3.png

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

b35bf95b8bf3d5d8.png

a99b7ace416376c4.png

bd84a6d3004737c5.png

  • Имя проекта — это отображаемое имя для участников этого проекта. Это строка символов, не используемая API Google. Вы можете обновить его в любое время.
  • Идентификатор проекта уникален для всех проектов Google Cloud и является неизменяемым (нельзя изменить после его установки). Cloud Console автоматически генерирует уникальную строку; обычно тебя не волнует, что это такое. В большинстве лабораторий кода вам потребуется указать идентификатор проекта (обычно он обозначается как PROJECT_ID ). Если вам не нравится сгенерированный идентификатор, вы можете создать другой случайный идентификатор. Кроме того, вы можете попробовать свой собственный и посмотреть, доступен ли он. Его нельзя изменить после этого шага, и он останется в силе на протяжении всего проекта.
  • К вашему сведению, есть третье значение — номер проекта , который используют некоторые API. Подробнее обо всех трех этих значениях читайте в документации .
  1. Затем вам необходимо включить выставление счетов в Cloud Console, чтобы использовать облачные ресурсы/API. Прохождение этой лаборатории кода не должно стоить много, если вообще стоит. Чтобы отключить ресурсы и избежать выставления счетов за пределами этого руководства, вы можете удалить созданные вами ресурсы или удалить весь проект. Новые пользователи 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
  • Реестр артефактов для хранения образов контейнеров для выполнения заданий в облаке и обслуживания клиентов.
  • Соединитель VPC Access для службы Cloud Run и задания для связи с базой данных AlloyDB.
  • Cloud Run Job для создания базы данных 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.
  • Программное обеспечение . Облачные клиентские библиотеки для API рабочих процессов или REST API можно использовать для управления рабочими процессами.
  • По расписанию . Вы можете использовать Cloud Scheduler для запуска рабочего процесса по определенному расписанию.

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

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

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

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

Просмотрите документацию, чтобы узнать больше об аутентификации между службами .

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

вознагражденияWorkflow.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

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

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 с информацией о новых заказах.

Workflow будет публиковать сообщения в теме 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 в консоли 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. Журналы записываются с использованием Cloud Logging API, ресурса 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 и использовать gcloud CLI

Что дальше:

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

Очистить

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

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

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