Trigger einer zweiten Partei mit Cloud Logging
Viele Google Cloud Platform-Ereignisse werden in Cloud-Audit-Logs protokolliert. Sie können diese Logs filtern und sie mithilfe von Senken an Pub/Sub-Themen weiterleiten. Diese Pub/Sub-Themen können dann Benachrichtigungen senden, die Cloud Functions auslösen. Auf diese Weise können Sie benutzerdefinierte Ereignisse aus jedem Google Cloud Platform-Dienst erstellen, der Audit-Logs erstellt.
Konfiguration
Für das folgende Beispiel benötigen Sie ein Pub/Sub-Thema und eine Cloud Logging-Senke. Diese werden dazu verwendet, um Cloud-Audit-Logs an eine Cloud Functions-Funktion weiterzuleiten.
Ereignisstruktur
Wie alle durch Pub/Sub ausgelöste Funktionen erhalten Funktionen, die von Cloud-Logeinträgen ausgelöst werden, ein PubsubMessage
-Objekt, dessen data
-Parameter ein base64
-codierter String ist. Bei Cloud-Logereignissen wird durch die Decodierung dieses Werts der relevante Logeintrag als JSON-String zurückgegeben.
Beispielcode
Sie können eine durch Pub/Sub ausgelöste Funktion wie die folgende verwenden, um exportierte Cloud-Logs zu erkennen und zu verarbeiten:
Node.js
Python
Einfach loslegen (Go)
Java
Funktion bereitstellen
Verwenden Sie den folgenden Befehl, um die Funktion bereitzustellen:
Node.js
gcloud functions deploy processLogEntry \ --runtime nodejs20 \
--trigger-topic YOUR_PUBSUB_TOPIC
Verwenden Sie das Flag --runtime
, um die Laufzeit-ID einer unterstützten Node.js-Version anzugeben und die Funktion auszuführen.
Python
gcloud functions deploy process_log_entry \ --runtime python312 \
--trigger-topic YOUR_PUBSUB_TOPIC
Verwenden Sie das Flag --runtime
, um die Laufzeit-ID einer unterstützten Python-Version anzugeben und die Funktion auszuführen.
Einfach loslegen (Go)
gcloud functions deploy ProcessLogEntry \ --runtime go121 \
--trigger-topic YOUR_PUBSUB_TOPIC
Verwenden Sie das Flag --runtime
, um die Laufzeit-ID einer unterstützten Go-Version anzugeben und die Funktion auszuführen.
Java
gcloud functions deploy java-log-function \ --entry-point StackdriverLogging \ --runtime java17 \ --memory 512MB \
--trigger-topic YOUR_PUBSUB_TOPIC
Verwenden Sie das Flag --runtime
, um die Laufzeit-ID einer unterstützten Java-Version anzugeben und die Funktion auszuführen.
Funktion auslösen
Wenn ein Cloud-Logeintrag erstellt wird, der mit einem Ihrer Filter übereinstimmt, sollten Sie entsprechende Logeinträge für Ihre Funktion sehen:
Method: METHOD Resource: projects/YOUR_GCLOUD_PROJECT/... Initiator: YOUR_EMAIL_ADDRESS