1. Ringkasan
Di lab ini, Anda akan membuat pemicu Eventarc yang menghubungkan topik Pub/Sub ke layanan Workflows. Eventarc memungkinkan Anda memisahkan komunikasi layanan ke layanan, sehingga solusi Anda lebih dapat diperluas dan didorong oleh peristiwa. Anda akan membuat alur kerja yang mencakup beberapa langkah untuk menjalankan proses bisnis guna menghitung poin reward pelanggan atas pemesanan di Cymbal Eats. Alur kerja akan memanggil API layanan Cloud Run pribadi untuk menjalankan logika bisnis. Layanan Cloud Run dikonfigurasi untuk hanya mengizinkan traffic internal dan layanan tersebut memerlukan autentikasi. Alur kerja akan memublikasikan pesan ke topik Pub/Sub untuk memberi tahu Layanan Pesanan tentang poin reward yang dihitung.
Apa itu Eventarc?
Eventarc memungkinkan Anda membangun arsitektur berbasis peristiwa tanpa harus menerapkan, menyesuaikan, atau memelihara infrastruktur yang mendasarinya. Eventarc menawarkan solusi standar untuk mengelola aliran perubahan status, yang disebut peristiwa, di antara microservice yang dipisahkan. Saat dipicu, Eventarc merutekan peristiwa ini melalui langganan Pub/Sub ke berbagai tujuan (misalnya, Workflows atau Cloud Run) sambil mengelola pengiriman, keamanan, otorisasi, kemampuan observasi, dan penanganan error untuk Anda.
Penyedia Acara Google
- Lebih dari 90 penyedia Google Cloud. Penyedia ini mengirim peristiwa secara langsung dari sumber (misalnya, Cloud Storage) atau melalui entri Cloud Audit Logs.
- Penyedia Pub/Sub. Penyedia ini mengirim peristiwa ke Eventarc menggunakan pesan Pub/Sub.
Penyedia pihak ketiga
Penyedia pihak ketiga adalah entitas non-Google yang menawarkan sumber Eventarc.
Pemicu Eventarc
- Peristiwa Cloud Pub/Sub. Eventarc dapat dipicu oleh pesan yang dipublikasikan ke topik Pub/Sub.
- Peristiwa Cloud Audit Logs (CAL). Cloud Audit Logs menyediakan log audit Aktivitas Admin dan Akses Data untuk setiap project, folder, dan organisasi Cloud.
- Peristiwa langsung. Eventarc dapat dipicu oleh berbagai peristiwa langsung seperti update pada bucket Cloud Storage atau pembaruan pada template Firebase Remote Config.
Tujuan acara
- Workflows
- Cloud Run
- GKE
- Cloud Functions( generasi ke-2)
Apa itu Workflows?
Workflows adalah layanan terkelola sepenuhnya yang memungkinkan Anda mengintegrasikan microservice, tugas, dan API. Workflows adalah layanan serverless dan akan diskalakan untuk memenuhi permintaan Anda.
Kasus penggunaan Workflows:
- Alur kerja berbasis peristiwa dijalankan berdasarkan pemicu yang ditentukan. Misalnya, saat pesanan baru dikirim dan Anda ingin menghitung poin loyalitas pelanggan. Atau saat pesanan dibatalkan, acara dapat dipublikasikan dan semua layanan yang berminat akan memproses acara tersebut.
- Alur kerja tugas batch menjalankan tugas secara rutin menggunakan Cloud Scheduler. Misalnya, pekerjaan malam hari untuk memeriksa item menu dalam status gagal dan menghapusnya.
Workflows sangat ideal untuk alur kerja yang mengorkestrasi layanan. Anda dapat mengotomatiskan proses yang meliputi aktivitas menunggu dan percobaan ulang hingga satu tahun.
Manfaat Workflows:
- Konfigurasi daripada kode: Kurangi utang teknis dengan memindahkan logika ke konfigurasi, bukan menulis kode.
- Sederhanakan arsitektur Anda. Dengan Workflows stateful, Anda dapat memvisualisasikan dan memantau integrasi layanan yang kompleks tanpa dependensi tambahan.
- Menggabungkan keandalan dan fault tolerance. Kegagalan dapat dikontrol dengan penanganan error dan logika percobaan ulang kustom atau default, bahkan saat sistem lain gagal. Setiap langkah ke Cloud Spanner diperiksa untuk membantu Anda melacak progres.
- Tak perlu pemeliharaan. Skalakan sesuai kebutuhan: Tidak ada yang perlu di-patch atau dipertahankan. Hanya bayar saat alur kerja Anda berjalan. Biaya tidak akan dikenakan saat alur kerja dalam status menunggu atau tidak aktif.
Di lab ini, Anda akan mengonfigurasi alur kerja berbasis peristiwa.
Yang akan Anda pelajari
Di lab ini, Anda akan mempelajari cara melakukan hal-hal berikut:
- Mengonfigurasi topik Pub/Sub dan Eventarc untuk memicu Workflows
- Mengonfigurasi Alur Kerja untuk memanggil layanan Cloud Run dan memublikasikan pesan ke Pub/Sub
- Cara membuat kueri log terstruktur Workflows di Cloud Logging dan menggunakan gcloud CLI
Prasyarat
- Lab ini mengasumsikan Anda telah memahami lingkungan Cloud Console dan Cloud Shell.
- Pengalaman Cloud Run dan Cloud Pub/Sub sebelumnya membantu, tetapi tidak diwajibkan.
2. Penyiapan dan Persyaratan
Penyiapan Project Cloud
- Login ke Google Cloud Console dan buat project baru atau gunakan kembali project yang sudah ada. Jika belum memiliki akun Gmail atau Google Workspace, Anda harus membuatnya.
- Project name adalah nama tampilan untuk peserta project ini. String ini adalah string karakter yang tidak digunakan oleh Google API. Anda dapat memperbaruinya kapan saja.
- Project ID bersifat unik di semua project Google Cloud dan tidak dapat diubah (tidak dapat diubah setelah ditetapkan). Cloud Console otomatis membuat string unik; biasanya Anda tidak
peduli tentang apa itu. Di sebagian besar codelab, Anda harus mereferensikan Project ID (biasanya diidentifikasi sebagai
PROJECT_ID
). Jika Anda tidak menyukai ID yang dihasilkan, Anda dapat membuat ID acak lainnya. Atau, Anda dapat mencobanya sendiri dan lihat apakah ID tersebut tersedia. ID tidak dapat diubah setelah langkah ini dan akan tetap ada selama durasi project. - Sebagai informasi, ada nilai ketiga, Project Number yang digunakan oleh beberapa API. Pelajari lebih lanjut ketiga nilai ini di dokumentasi.
- Selanjutnya, Anda harus mengaktifkan penagihan di Konsol Cloud untuk menggunakan resource/API Cloud. Menjalankan operasi dalam codelab ini seharusnya tidak memerlukan banyak biaya, bahkan mungkin tidak sama sekali. Untuk mematikan resource agar tidak menimbulkan penagihan di luar tutorial ini, Anda dapat menghapus resource yang dibuat atau menghapus seluruh project. Pengguna baru Google Cloud memenuhi syarat untuk mengikuti program Uji Coba Gratis senilai $300 USD.
Penyiapan Lingkungan
Aktifkan Cloud Shell dengan mengklik ikon di sebelah kanan kotak penelusuran.
Clone repositori dan buka direktori, salin dan tempel perintah di bawah ini ke terminal, lalu tekan Enter:
git clone https://github.com/GoogleCloudPlatform/cymbal-eats.git && cd cymbal-eats/customer-service
Men-deploy dependensi yang diperlukan dengan menjalankan lab-setup.sh
Resource berikut akan dibuat:
- Cluster dan instance AlloyDB
- Artifact Registry untuk menyimpan image container bagi Cloud Run Job dan Layanan Pelanggan
- Konektor Akses VPC untuk Layanan dan Tugas Cloud Run agar dapat berkomunikasi dengan database AlloyDB
- Cloud Run Job untuk membuat database AlloyDB
- Layanan Pelanggan Cloud Run - microservice berbasis java yang menggunakan framework Quarkus.
./lab-setup.sh
Jika diminta untuk memberi otorisasi, klik "Authorize" untuk melanjutkan.
Penyiapan memerlukan waktu sekitar 10 menit.
Tunggu hingga skrip selesai dan Anda melihat output di bawah sebelum menjalankan langkah lainnya.
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
Anda dapat menjelajahi bagian berikutnya, lalu kembali untuk melanjutkan dari langkah berikutnya.
3. Tinjau Alur Kerja
Konsep Inti Workflows
Alur kerja terdiri dari serangkaian langkah yang dijelaskan menggunakan sintaksis Workflows( YAML atau JSON).
Setelah dibuat, alur kerja akan di-deploy, sehingga alur kerja siap untuk dieksekusi.
Eksekusi adalah eksekusi tunggal logika yang terdapat dalam definisi alur kerja. Alur kerja yang belum dijalankan tidak menghasilkan biaya. Semua eksekusi alur kerja bersifat independen, dan penskalaan produk yang cepat memungkinkan eksekusi serentak dalam jumlah tinggi.
Kontrol eksekusi
- Langkah-langkah - Untuk membuat alur kerja, tentukan
steps
dan urutan eksekusi yang diinginkan menggunakan sintaksis Workflows. Setiap alur kerja harus memiliki setidaknya satu langkah. - Kondisi - Anda dapat menggunakan blok
switch
sebagai mekanisme pemilihan yang memungkinkan nilai ekspresi mengontrol alur eksekusi alur kerja. - Iterasi - Anda dapat menggunakan loop
for
untuk melakukan iterasi pada urutan angka atau melalui kumpulan data, seperti daftar atau peta. - Sub-alur kerja - Subalur kerja ini mirip dengan rutinitas atau fungsi dalam bahasa pemrograman, sehingga Anda dapat mengenkapsulasi langkah atau serangkaian langkah yang akan diulangi oleh alur kerja Anda beberapa kali.
Memicu eksekusi
- Manual - Anda dapat mengelola alur kerja dari Konsol Google Cloud atau dari command line menggunakan Google Cloud CLI.
- Terprogram - Library Klien Cloud untuk Workflows API, atau REST API, dapat digunakan untuk mengelola alur kerja.
- Dijadwalkan - Anda dapat menggunakan Cloud Scheduler untuk menjalankan alur kerja pada jadwal tertentu.
Argumen Runtime
Data yang diteruskan saat runtime dapat diakses dengan menambahkan kolom params
ke alur kerja utama Anda (ditempatkan di blok utama). Blok utama menerima satu argumen yang merupakan jenis data JSON yang valid. Kolom params memberi nama variabel yang digunakan alur kerja untuk menyimpan data yang Anda teruskan.
Alur kerja ke Autentikasi Layanan Cloud Run
Layanan pelanggan adalah aplikasi contoh yang disertakan dalam repo ini yang berjalan di Cloud Run dan dikonfigurasi untuk mengizinkan permintaan terautentikasi yang berasal dari jaringan internal saja. Anda akan mengonfigurasi Workflows untuk menambahkan token OpenID Connect(OIDC) yang ditandatangani oleh Google ke permintaan untuk melakukan autentikasi dengan layanan Cloud Run.
Tinjau dokumentasi untuk mempelajari autentikasi layanan-ke-layanan lebih lanjut.
Autentikasi alur kerja dikonfigurasi dalam blok args
menggunakan bagian auth
.
rewardsWorkflow.yaml.tmpl
- create_customer: call: http.post args: url: CUSTOMER_SERVICE_URL/customer auth: type: OIDC
Logika Alur Kerja
Jika pelanggan tidak ada, alur kerja ini akan melakukan panggilan API untuk membuat pelanggan terlebih dahulu, lalu memperbarui poin reward. Berdasarkan jumlah total pesanan, alur kerja akan memilih pengganda untuk menghitung poin reward bagi pelanggan. Lihat contoh di bawah untuk mengetahui detailnya.
- 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. Mengonfigurasi dan men-deploy Alur Kerja
Menyiapkan variabel lingkungan:
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
Ganti URL layanan di template alur kerja:
sed "s@CUSTOMER_SERVICE_URL@$CUSTOMER_SERVICE_URL@g" rewardsWorkflow.yaml.tmpl > rewardsWorkflow.yaml
Menetapkan lokasi untuk layanan Workflows dan variabel lingkungan project:
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)')
Buat akun layanan kustom untuk alur kerja dengan izin berikut:
- Memanggil layanan Cloud Run
- Memanggil Logging API
- Memublikasikan pesan ke topik 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"
Men-deploy alur kerja. Alur kerja dikonfigurasi untuk menggunakan akun layanan yang dibuat di langkah sebelumnya:
export WORKFLOW_NAME=rewardsWorkflow
gcloud workflows deploy ${WORKFLOW_NAME} \
--source=rewardsWorkflow.yaml \
--service-account=${WORKFLOW_SERVICE_ACCOUNT}@$PROJECT_ID.iam.gserviceaccount.com
Tinjau sumber alur kerja dan detail lainnya(tab Pemicu). Saat ini tidak ada pemicu yang dikonfigurasi untuk menjalankan alur kerja ini. Anda akan menyiapkannya di langkah berikutnya.
5. Mengonfigurasi topik Pub/Sub dan pemicu Eventarc
Selanjutnya, Anda akan membuat dua topik Pub/Sub dan mengonfigurasi satu pemicu Eventarc.
Layanan Pesanan akan memublikasikan pesan ke order-topic
berisi informasi tentang pesanan baru.
Alur kerja akan memublikasikan pesan ke order-points-topic
dengan informasi tentang poin reward pesanan dan jumlah total. Layanan Pesanan(tidak di-deploy sebagai bagian dari lab ini) mengekspos endpoint yang digunakan oleh langganan Push untuk order-points-topic,
guna memperbarui poin reward dan jumlah total per pesanan.
Buat topik Pub/Sub baru:
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
Menetapkan lokasi untuk layanan Eventarc:
gcloud config set eventarc/location ${REGION}
Membuat akun layanan kustom yang akan digunakan oleh pemicu Eventarc untuk menjalankan alur kerja.
export TRIGGER_SERVICE_ACCOUNT=eventarc-workflow-sa
gcloud iam service-accounts create ${TRIGGER_SERVICE_ACCOUNT}
Berikan akses ke akun layanan untuk menjalankan alur kerja.
gcloud projects add-iam-policy-binding ${PROJECT_ID} \
--member="serviceAccount:${TRIGGER_SERVICE_ACCOUNT}@${PROJECT_ID}.iam.gserviceaccount.com" \
--role="roles/workflows.invoker"
Membuat pemicu Eventarc untuk memproses pesan Pub/Sub dan mengirimkannya ke 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
Contoh output:
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.
Tinjau pemicu Eventarc yang dibuat.
Tinjau langganan yang dibuat untuk pemicu.
Tinjau perubahan di sisi alur kerja. Pemicu baru telah ditambahkan.
6. Alur kerja pengujian
Untuk menyimulasikan Layanan Pesanan, Anda akan mengirim pesan ke topik Pub/Sub dari Cloud Shell dan memverifikasi log layanan Pelanggan Cloud Run di Konsol 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}]}'
Contoh output:
messageIds: - '5063709859203105'
Tinjau detail dan log eksekusi alur kerja.
7. Logging Terstruktur Alur Kerja
Alur kerja dikonfigurasi untuk menulis log terstruktur dalam format JSON. Log ditulis menggunakan Cloud Logging API, resource workflows.googleapis.com/Workflow
, dan dengan nama log projects/${PROJECT_ID}/logs/Workflows
.
Tinjau konfigurasi logging di bawah.
- log_totalAmount: call: sys.log args: json: orderNumber: ${order.orderNumber} totalAmount: ${totalAmount} multiplier: ${multiplier} totalRewardPoints: ${rewardPoints} orderRewardPoints: ${orderRewardPoints} severity: INFO
Buka Logs Explorer di Konsol dan jalankan kueri untuk pesanan yang diproses dengan jumlah total lebih dari $2 dolar.
Gunakan kueri di bawah ini, dan ganti project ID(qwiklabs-gcp-01-1a990bfcadb3
) dengan project ID Anda saat ini:
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"
Contoh output:
Buka Cloud Shell dan gunakan gcloud CLI untuk membaca log dengan perintah di bawah ini.
Ganti ID project(qwiklabs-gcp-01-1a990bfcadb3
) dengan ID project Anda saat ini.
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)"
Contoh output menggunakan format table
:
Ganti ID project(qwiklabs-gcp-01-1a990bfcadb3
) dengan ID project Anda saat ini.
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
Contoh output menggunakan format json
:
8. Tinjau Catatan Pelanggan
(Langkah opsional) Saat ini customer-service
dikonfigurasi untuk menerima traffic dari jaringan internal saja.
Jalankan perintah di bawah untuk menyimpan URL layanan dan memanggil layanan pelanggan.
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
Anda akan mendapatkan pesan error yang menyatakan bahwa akses dilarang.
<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>
Untuk melihat data pelanggan lama, ubah setelan ingress customer-service
Cloud Run ke "Allow all traffic
" dan klik "Simpan".
Tindakan ini akan membuat endpoint bersifat publik dan Anda dapat memanggil API Layanan Pelanggan dari Cloud Shell menggunakan curl.
Jalankan perintah di bawah untuk menyimpan URL layanan dan menampilkan daftar pelanggan lama.
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
Contoh output:
[ { "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" } ]
Jalankan perintah untuk memublikasikan pesanan baru beberapa kali dan memverifikasi poin reward pelanggan dengan perintah curl.
Publikasikan pesan pesanan baru:
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}]}'
Verifikasi poin reward pelanggan:
curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" $CUSTOMER_SERVICE_URL/customer | jq
Verifikasi log. Ganti ID project(qwiklabs-gcp-01-1a990bfcadb3
) dengan ID project Anda saat ini.
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. Selamat!
Selamat, Anda telah menyelesaikan codelab!
Yang telah kita bahas:
- Cara mengonfigurasi Workflows
- Cara mengonfigurasi pemicu Eventarc untuk Workflows
- Cara memanggil layanan Cloud Run dari Workflows
- Cara membuat kueri log terstruktur di Cloud Logging dan menggunakan gcloud CLI
Langkah berikutnya:
Pelajari codelab Cymbal Eats lainnya:
- Memicu Pemrosesan Peristiwa dari Cloud Storage
- Terhubung ke Private CloudSQL dari Cloud Run
- Terhubung ke Database yang Terkelola Sepenuhnya dari Cloud Run
- Aplikasi Serverless yang Aman dengan Identity-Aware Proxy (IAP)
- Memicu Tugas Cloud Run dengan Cloud Scheduler
- Men-deploy dengan Aman ke Cloud Run
- Mengamankan Traffic Masuk Cloud Run
- Terhubung ke AlloyDB pribadi dari Autopilot GKE
Pembersihan
Agar tidak menimbulkan biaya pada akun Google Cloud Anda untuk resource yang digunakan dalam tutorial ini, hapus project yang berisi resource, atau simpan project dan hapus resource satu per satu.
Menghapus project
Cara termudah untuk menghilangkan penagihan adalah dengan menghapus project yang Anda buat untuk tutorial.