1. Przegląd
W tym module utworzysz aktywator Eventarc, który łączy temat Pub/Sub z usługą Workflows. Eventarc umożliwia odłączenie komunikacji między usługami, dzięki czemu rozwiązanie jest bardziej rozszerzalne i oparte na zdarzeniach. Utworzysz przepływ pracy, który obejmuje kilka kroków wykonywania procesu biznesowego obliczania punktów w programie lojalnościowym klienta za zamówienie w Cymbal Eats. Przepływ pracy wywoła prywatny interfejs API usługi Cloud Run, aby wykonać logikę biznesową. Usługa Cloud Run jest skonfigurowana tak, aby zezwalać tylko na ruch wewnętrzny i wymagać uwierzytelniania. Przepływ pracy opublikuje wiadomość w temacie Pub/Sub, aby powiadomić usługę zamówień o obliczonych punktach w programie lojalnościowym.
Czym jest Eventarc?
Eventarc umożliwia tworzenie architektur opartych na zdarzeniach bez konieczności wdrażania, dostosowywania ani utrzymywania infrastruktury bazowej. Eventarc oferuje standardowe rozwiązanie do zarządzania przepływem zmian stanu (nazywanych zdarzeniami) między odłączonymi mikroserwisami. Po aktywowaniu Eventarc przekierowuje te zdarzenia przez subskrypcje Pub/Sub do różnych miejsc docelowych (np. Workflows lub Cloud Run), a jednocześnie zarządza przesyłaniem, zabezpieczeniami, autoryzacją, dostrzegalnością i obsługą błędów.
Dostawcy wydarzeń Google
- Ponad 90 dostawców Google Cloud. Ci dostawcy wysyłają zdarzenia bezpośrednio ze źródła (np. Cloud Storage) lub za pomocą wpisów w logach kontrolnych Cloud.
- dostawców Pub/Sub, Ci dostawcy wysyłają zdarzenia do Eventarc za pomocą wiadomości Pub/Sub.
Dostawcy zewnętrzni
Dostawcy zewnętrzni to podmioty spoza Google, które oferują źródło Eventarc.
Aktywatory Eventarc
- Zdarzenia Cloud Pub/Sub Eventarc może być wywoływany przez wiadomości publikowane w tematach Pub/Sub.
- Zdarzenia logów kontrolnych Cloud (CAL). Logi kontrolne Cloud Audit Logs zawierają logi kontrolne aktywności administracyjnej i dostępu do danych dla każdego projektu w chmurze, folderu i organizacji.
- Zdarzenia bezpośrednie Eventarc może być wywoływany przez różne zdarzenia bezpośrednie, takie jak aktualizacja zasobnika Cloud Storage lub aktualizacja szablonu Zdalnej konfiguracji Firebase.
Miejsca docelowe zdarzeń
- Przepływy pracy
- Cloud Run
- GKE
- Cloud Functions( 2 generacji)

Co to jest Workflows?
Workflows to usługa w pełni zarządzana, która umożliwia integrację mikroserwisów, zadań i interfejsów API. Workflows to usługa bezserwerowa, która skaluje się w zależności od Twoich potrzeb.
Przykłady zastosowań Workflows:
- Przepływy pracy oparte na zdarzeniach są wykonywane na podstawie zdefiniowanych aktywatorów. Na przykład gdy zostanie przesłane nowe zamówienie i chcesz obliczyć punkty lojalnościowe klienta. Gdy zamówienie zostanie anulowane, można opublikować zdarzenie, a wszystkie zainteresowane usługi je przetworzą.
- Przepływy pracy zadań wsadowych uruchamiają zadania regularnie za pomocą usługi Cloud Scheduler. Może to być na przykład zadanie wykonywane co noc, które sprawdza, czy w menu są pozycje w stanie nieudanym, i usuwa je.
Workflows to idealne rozwiązanie w przypadku przepływów pracy, które zarządzają usługami. Możesz zautomatyzować procesy, które obejmują oczekiwanie i ponawianie prób przez okres do roku.
Korzyści z przepływów pracy:
- Konfiguracja zamiast kodu: zmniejsz dług techniczny, przenosząc logikę do konfiguracji zamiast pisać kod.
- Uprość architekturę. Przepływy pracy z zachowaniem stanu umożliwiają wizualizację i monitorowanie złożonych integracji usług bez dodatkowych zależności.
- Zapewnij niezawodność i odporność na awarie. Kontroluj błędy za pomocą domyślnej lub niestandardowej logiki ponawiania i obsługi błędów, nawet gdy inne systemy ulegną awarii. Sprawdzaj każdy krok w Cloud Spanner, aby śledzić postępy.
- Bezobsługowość Skalowanie w miarę potrzeb: nie musisz instalować poprawek ani utrzymywać systemu. Płać tylko wtedy, gdy przepływy pracy są uruchomione. Gdy czekają lub są nieaktywne, nie ponosisz żadnych kosztów.
W tym module skonfigurujesz przepływ pracy oparty na zdarzeniach.
Czego się nauczysz
W tym module nauczysz się:
- Konfigurowanie tematu Pub/Sub i Eventarc w celu aktywowania przepływów pracy
- Konfigurowanie przepływu pracy do wywoływania usługi Cloud Run i publikowania wiadomości w Pub/Sub
- Jak wykonywać zapytania dotyczące logów strukturalnych Workflows w Cloud Logging i za pomocą interfejsu wiersza poleceń gcloud
Wymagania wstępne
- Zakładamy, że użytkownik zna środowiska konsoli Cloud i Cloud Shell.
- Wcześniejsze doświadczenie z Cloud Run i Cloud Pub/Sub może być pomocne, ale nie jest wymagane.
2. Konfiguracja i wymagania
Konfigurowanie projektu w Google Cloud
- Zaloguj się w konsoli Google Cloud i utwórz nowy projekt lub użyj istniejącego. Jeśli nie masz jeszcze konta Gmail ani Google Workspace, musisz je utworzyć.



- Nazwa projektu to wyświetlana nazwa uczestników tego projektu. Jest to ciąg znaków, który nie jest używany przez interfejsy API Google. Możesz ją zaktualizować w dowolnym momencie.
- Identyfikator projektu jest unikalny we wszystkich projektach Google Cloud i nie można go zmienić po ustawieniu. Konsola Cloud automatycznie generuje unikalny ciąg znaków. Zwykle nie musisz się nim przejmować. W większości ćwiczeń z programowania musisz odwoływać się do identyfikatora projektu (zwykle jest on oznaczony jako
PROJECT_ID). Jeśli wygenerowany identyfikator Ci się nie podoba, możesz wygenerować inny losowy identyfikator. Możesz też spróbować własnej nazwy i sprawdzić, czy jest dostępna. Po tym kroku nie można go zmienić i będzie obowiązywać przez cały czas trwania projektu. - Warto wiedzieć, że istnieje też trzecia wartość, czyli numer projektu, z której korzystają niektóre interfejsy API. Więcej informacji o tych 3 wartościach znajdziesz w dokumentacji.
- Następnie musisz włączyć płatności w konsoli Cloud, aby korzystać z zasobów i interfejsów API Google Cloud. Ukończenie tego laboratorium nie powinno wiązać się z dużymi kosztami, a nawet z żadnymi. Aby wyłączyć zasoby i uniknąć naliczania opłat po zakończeniu tego samouczka, możesz usunąć utworzone zasoby lub cały projekt. Nowi użytkownicy Google Cloud mogą skorzystać z bezpłatnego okresu próbnego, w którym mają do dyspozycji środki w wysokości 300 USD.
Konfiguracja środowiska
Aktywuj Cloud Shell, klikając ikonę po prawej stronie paska wyszukiwania.

Sklonuj repozytorium i przejdź do katalogu. Skopiuj i wklej poniższe polecenie do terminala, a potem naciśnij Enter:
git clone https://github.com/GoogleCloudPlatform/cymbal-eats.git && cd cymbal-eats/customer-service
Wdróż wymagane zależności, uruchamiając polecenie lab-setup.sh.
Zostaną utworzone te zasoby:
- Klaster i instancja AlloyDB
- Artifact Registry do przechowywania obrazów kontenerów na potrzeby zadania Cloud Run i obsługi klienta
- Oprogramowanie sprzęgające dostęp do VPC w usłudze i zadaniu Cloud Run, które umożliwia komunikację z bazą danych AlloyDB.
- Zadanie Cloud Run do tworzenia bazy danych AlloyDB
- Usługa obsługi klienta Cloud Run – mikroserwis oparty na Javie, który korzysta z platformy Quarkus.
./lab-setup.sh
Jeśli pojawi się prośba o autoryzację, kliknij „Autoryzuj”, aby kontynuować.

Konfiguracja zajmie około 10 minut.
Zanim wykonasz kolejne kroki, poczekaj na zakończenie działania skryptu i wyświetlenie poniższych wyników.
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
Możesz przejść do następnej sekcji, a potem wrócić, aby kontynuować od kolejnego kroku.
3. Sprawdzanie przepływu pracy
Najważniejsze pojęcia dotyczące Workflows
Przepływ pracy składa się z szeregu kroków opisanych za pomocą składni przepływów pracy( YAML lub JSON).
Po utworzeniu przepływu pracy jest on wdrażany, co oznacza, że jest gotowy do wykonania.
Wykonanie to jednorazowe uruchomienie logiki zawartej w definicji przepływu pracy. Przepływ pracy, który nie został wykonany, nie generuje żadnych opłat. Wszystkie wykonania przepływu pracy są niezależne, a szybkie skalowanie usługi umożliwia dużą liczbę równoczesnych wykonań.
Opcje wykonania
- Kroki – aby utworzyć przepływ pracy, zdefiniuj żądane
stepsi kolejność wykonania za pomocą składni Workflows. Każdy przepływ pracy musi mieć co najmniej 1 krok. - Warunki – możesz użyć bloku
switchjako mechanizmu wyboru, który umożliwia sterowanie przepływem wykonania przepływu pracy za pomocą wartości wyrażenia. - Iteracje – możesz użyć pętli
for, aby iterować sekwencję liczb lub kolekcję danych, np. listę lub mapę. - Podprocesy – podproces działa podobnie do procedury lub funkcji w języku programowania, umożliwiając enkapsulację kroku lub zestawu kroków, które Twój proces będzie powtarzać wielokrotnie.
Uruchamianie wykonań
- Ręcznie – przepływami pracy możesz zarządzać w konsoli Google Cloud lub w wierszu poleceń za pomocą Google Cloud CLI.
- Programowo – do zarządzania przepływami pracy można używać bibliotek klienta Cloud dla interfejsu Workflows API lub interfejsu REST API.
- Zaplanowany – możesz użyć usługi Cloud Scheduler, aby uruchamiać przepływ pracy zgodnie z określonym harmonogramem.
Argumenty środowiska wykonawczego
Do danych przekazywanych w czasie działania można uzyskać dostęp, dodając pole params do głównego przepływu pracy (umieszczonego w bloku głównym). Główny blok przyjmuje jeden argument, który jest dowolnym prawidłowym typem danych JSON. Pole params zawiera nazwę zmiennej, której przepływ pracy używa do przechowywania przekazywanych danych.
Przepływ pracy uwierzytelniania w usłudze Cloud Run
Usługa Customer service to przykładowa aplikacja zawarta w tym repozytorium, która działa w Cloud Run i jest skonfigurowana tak, aby zezwalać tylko na uwierzytelnione żądania pochodzące z sieci wewnętrznych. Skonfigurujesz przepływy pracy tak, aby dodawały do żądania token OpenID Connect(OIDC) podpisany przez Google w celu uwierzytelnienia w usłudze Cloud Run.
Więcej informacji o uwierzytelnianiu między usługami znajdziesz w dokumentacji.
Uwierzytelnianie przepływu pracy jest konfigurowane w bloku args w sekcji auth.
rewardsWorkflow.yaml.tmpl
- create_customer:
call: http.post
args:
url: CUSTOMER_SERVICE_URL/customer
auth:
type: OIDC
Logika przepływu pracy
Jeśli klient nie istnieje, ta procedura wywoła interfejs API, aby najpierw utworzyć klienta, a potem zaktualizować punkty za nagrody. Na podstawie łącznej kwoty zamówienia proces wybierze mnożnik, aby obliczyć punkty za nagrody dla klienta. Szczegółowe informacje znajdziesz w przykładzie poniżej.
- 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}

4. Konfigurowanie i wdrażanie przepływu pracy
Skonfiguruj zmienne środowiskowe:
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
Zastąp adres URL usługi w szablonie przepływu pracy:
sed "s@CUSTOMER_SERVICE_URL@$CUSTOMER_SERVICE_URL@g" rewardsWorkflow.yaml.tmpl > rewardsWorkflow.yaml
Ustaw lokalizację usługi Workflows i zmienne środowiskowe projektu:
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)')
Utwórz niestandardowe konto usługi na potrzeby przepływu pracy z tymi uprawnieniami:
- Wywoływanie usługi Cloud Run
- Wywoływanie interfejsów Call Logging API
- Publikowanie wiadomości w temacie 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"
Wdróż przepływ pracy. Przepływ pracy jest skonfigurowany tak, aby używać konta usługi utworzonego w poprzednim kroku:
export WORKFLOW_NAME=rewardsWorkflow
gcloud workflows deploy ${WORKFLOW_NAME} \
--source=rewardsWorkflow.yaml \
--service-account=${WORKFLOW_SERVICE_ACCOUNT}@$PROJECT_ID.iam.gserviceaccount.com
Sprawdź źródło przepływu pracy i inne szczegóły(karta Wyzwalacze). Obecnie nie ma skonfigurowanych aktywatorów do uruchamiania tego przepływu pracy. Skonfigurujesz go w następnym kroku.

5. Konfigurowanie tematów Pub/Sub i aktywatora Eventarc
Następnie utworzysz 2 tematy Pub/Sub i skonfigurujesz 1 aktywator Eventarc.
Usługa zamówień będzie publikować w order-topic wiadomości z informacjami o nowych zamówieniach.
Przepływ pracy będzie publikować wiadomości w order-points-topic z informacjami o punktach w programie lojalnościowym za zamówienie i łącznej kwocie. Usługa zamówień(nie jest wdrażana w ramach tego modułu) udostępnia punkt końcowy, który jest używany przez subskrypcję push order-points-topic, do aktualizowania punktów w programie lojalnościowym i łącznej kwoty za zamówienie.
Utwórz nowe tematy 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
Ustaw lokalizację usługi Eventarc:
gcloud config set eventarc/location ${REGION}
Utwórz niestandardowe konto usługi, które będzie używane przez aktywator Eventarc do wykonywania przepływów pracy.
export TRIGGER_SERVICE_ACCOUNT=eventarc-workflow-sa
gcloud iam service-accounts create ${TRIGGER_SERVICE_ACCOUNT}
Przyznaj kontu usługi dostęp do wykonywania przepływów pracy.
gcloud projects add-iam-policy-binding ${PROJECT_ID} \
--member="serviceAccount:${TRIGGER_SERVICE_ACCOUNT}@${PROJECT_ID}.iam.gserviceaccount.com" \
--role="roles/workflows.invoker"
Utwórz aktywator Eventarc, który będzie nasłuchiwać wiadomości Pub/Sub i dostarczać je do Workflows.
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
Przykładowe dane wyjściowe:
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.
Sprawdź utworzony aktywator Eventarc.

Sprawdź utworzoną subskrypcję pod kątem aktywatora.

Sprawdź zmiany po stronie przepływu pracy. Dodano nowy aktywator.

6. Testowanie przepływu pracy
Aby zasymulować usługę zamówień, wyślesz wiadomości do tematu Pub/Sub z Cloud Shell i sprawdzisz dzienniki usługi Cloud Run Customer w konsoli 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}]}'
Przykładowe dane wyjściowe:
messageIds: - '5063709859203105'
Sprawdź szczegóły wykonania przepływu pracy i logi.


7. Uporządkowane logowanie przepływu pracy
Przepływ pracy jest skonfigurowany tak, aby zapisywać dzienniki strukturalne w formacie JSON. Logi są zapisywane przy użyciu interfejsu Cloud Logging API, zasobu workflows.googleapis.com/Workflow i nazwy logu projects/${PROJECT_ID}/logs/Workflows.
Sprawdź poniżej konfigurację logowania.
- log_totalAmount:
call: sys.log
args:
json:
orderNumber: ${order.orderNumber}
totalAmount: ${totalAmount}
multiplier: ${multiplier}
totalRewardPoints: ${rewardPoints}
orderRewardPoints: ${orderRewardPoints}
severity: INFO
Otwórz Eksplorator logów w konsoli i uruchom zapytanie dotyczące przetworzonych zamówień o łącznej kwocie powyżej 2 USD.
Użyj poniższego zapytania, zastępując identyfikator projektu(qwiklabs-gcp-01-1a990bfcadb3) identyfikatorem bieżącego projektu:
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"
Przykładowe dane wyjściowe:

Otwórz Cloud Shell i użyj gcloud CLI do odczytywania logów za pomocą poniższych poleceń.
Zastąp identyfikator projektu(qwiklabs-gcp-01-1a990bfcadb3) identyfikatorem bieżącego projektu.
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)"
Przykładowe dane wyjściowe w formacie table:

Zastąp identyfikator projektu(qwiklabs-gcp-01-1a990bfcadb3) identyfikatorem bieżącego projektu.
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
Przykładowe dane wyjściowe w formacie json:

8. Sprawdzanie danych klientów
(Opcjonalne) Obecnie usługa customer-service jest skonfigurowana tak, aby akceptować ruch tylko z sieci wewnętrznych.
Aby zapisać adres URL usługi i wywołać usługę klienta, uruchom te polecenia:
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
Pojawi się komunikat o błędzie z informacją, że dostęp jest zabroniony.
<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>
Aby wyświetlić istniejące rekordy klientów, zmień ustawienia Ingress Cloud Run customer-service na opcję „Allow all traffic” i kliknij „Zapisz”.
Spowoduje to udostępnienie punktu końcowego publicznie. Możesz wywołać interfejs Customer Service API z Cloud Shell za pomocą polecenia curl.

Uruchom poniższe polecenia, aby zapisać adres URL usługi i wyświetlić listę obecnych klientów.
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
Przykładowe dane wyjściowe:
[
{
"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"
}
]
Uruchom polecenie, aby opublikować nowe zamówienie kilka razy, i sprawdź punkty w programie lojalnościowym klienta za pomocą polecenia curl.
Opublikuj wiadomość o nowym zamówieniu:
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}]}'
Sprawdź punkty w programie lojalnościowym klienta:
curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" $CUSTOMER_SERVICE_URL/customer | jq
Sprawdź dzienniki. Zastąp identyfikator projektu(qwiklabs-gcp-01-1a990bfcadb3) identyfikatorem bieżącego projektu.
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. Gratulacje!
Gratulacje! Codelab został ukończony.
Omówione zagadnienia:
- Konfigurowanie przepływów pracy
- Jak skonfigurować aktywator Eventarc dla przepływów pracy
- Wywoływanie usługi Cloud Run z Workflows
- Jak wykonywać zapytania dotyczące logów strukturalnych w Cloud Logging za pomocą interfejsu wiersza poleceń gcloud
Co dalej?
Zapoznaj się z innymi ćwiczeniami z programowania dotyczącymi Cymbal Eats:
- Aktywowanie przetwarzania zdarzeń z Cloud Storage
- Nawiązywanie połączenia z prywatną instancją Cloud SQL z usługi Cloud Run
- Łączenie się z w pełni zarządzanymi bazami danych z usługi Cloud Run
- Zabezpieczanie aplikacji bezserwerowej za pomocą serwera proxy identyfikującego tożsamość (IAP)
- Wywoływanie zadań Cloud Run za pomocą Cloud Scheduler
- Bezpieczne wdrażanie w Cloud Run
- Zabezpieczanie ruchu przychodzącego w Cloud Run
- Łączenie się z prywatną bazą danych AlloyDB z Autopilota w GKE
Czyszczenie danych
Aby uniknąć obciążenia konta Google Cloud opłatami za zasoby zużyte w tym samouczku, możesz usunąć projekt zawierający te zasoby lub zachować projekt i usunąć poszczególne zasoby.
Usuwanie projektu
Najprostszym sposobem na uniknięcie płatności jest usunięcie projektu utworzonego w tym samouczku.
