Pemicu Pihak Kedua dengan Cloud Logging
Banyak peristiwa Google Cloud Platform yang dicatat ke dalam log di Cloud Audit Logs. Anda dapat memfilter log tersebut dan meneruskannya ke topik Pub/Sub menggunakan sink. Topik Pub/Sub ini selanjutnya dapat mengirimkan notifikasi yang memicu Cloud Functions. Dengan begitu, Anda dapat membuat peristiwa kustom dari layanan Google Cloud Platform mana pun yang menghasilkan log audit.
Konfigurasi
Untuk menjalankan contoh di bawah ini, Anda memerlukan topik Pub/Sub dan sink Cloud Logging. Contoh menggunakannya untuk meneruskan Cloud Audit Logs ke Cloud Function.
Struktur peristiwa
Seperti semua fungsi yang dipicu Pub/Sub, fungsi yang dipicu oleh entri log Cloud menerima objek PubsubMessage
yang parameter data
-nya adalah String berenkode base64
. Untuk peristiwa log Cloud, mendekode nilai ini akan menampilkan entri log yang relevan sebagai string JSON.
Kode sampel
Anda dapat menggunakan fungsi yang dipicu Pub/Sub seperti di bawah ini untuk mendeteksi dan merespons log Cloud yang diekspor:
Node.js
Python
Go
Java
Men-deploy fungsi
Gunakan perintah di bawah untuk men-deploy fungsi:
Node.js
gcloud functions deploy processLogEntry \ --runtime nodejs20 \
--trigger-topic YOUR_PUBSUB_TOPIC
Gunakan flag --runtime
untuk menentukan ID runtime dari versi Node.js yang didukung untuk menjalankan fungsi Anda.
Python
gcloud functions deploy process_log_entry \ --runtime python312 \
--trigger-topic YOUR_PUBSUB_TOPIC
Gunakan flag --runtime
untuk menentukan ID runtime
versi Python yang didukung untuk menjalankan
fungsi Anda.
Go
gcloud functions deploy ProcessLogEntry \ --runtime go121 \
--trigger-topic YOUR_PUBSUB_TOPIC
Gunakan flag --runtime
untuk menentukan ID runtime versi Go yang didukung untuk menjalankan fungsi Anda.
Java
gcloud functions deploy java-log-function \ --entry-point StackdriverLogging \ --runtime java17 \ --memory 512MB \
--trigger-topic YOUR_PUBSUB_TOPIC
Gunakan flag --runtime
untuk menentukan ID runtime versi Java yang didukung untuk menjalankan fungsi Anda.
Memicu fungsi
Saat entri log Cloud yang cocok dengan salah satu filter dibuat, Anda akan melihat entri log yang sesuai untuk fungsi Anda:
Method: METHOD Resource: projects/YOUR_GCLOUD_PROJECT/... Initiator: YOUR_EMAIL_ADDRESS