Pemicu Pihak Kedua dengan Cloud Logging
Banyak peristiwa Google Cloud yang dicatat dalam Cloud Audit Logs. Anda dapat memfilter log ini dan meneruskannya ke topik Pub/Sub menggunakan sink. Topik Pub/Sub ini kemudian dapat mengirimkan notifikasi yang memicu fungsi Cloud Run. Hal ini memungkinkan Anda membuat peristiwa dari layanan Google Cloud apa pun yang menghasilkan log audit.
Konfigurasi
Untuk menjalankan contoh dalam dokumen ini, Anda memerlukan Topik Pub/Sub dan sink Cloud Logging. Contoh ini menggunakannya untuk meneruskan Cloud Audit Logs ke fungsi Cloud Run.
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 contoh
Anda dapat menggunakan fungsi yang dipicu Pub/Sub untuk mendeteksi dan merespons log Cloud yang diekspor:
Node.js
Python
Go
Java
Men-deploy fungsi
Gunakan perintah berikut untuk men-deploy fungsi:
Node.js
gcloud functions deploy processLogEntry \ --runtime nodejs20 \
--trigger-topic YOUR_PUBSUB_TOPIC/
FLAGS...
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/
FLAGS...
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/
FLAGS...
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/
FLAGS...
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