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 nodejs18 \Mit den folgenden Werten für das Flag
--trigger-topic YOUR_PUBSUB_TOPIC
--runtime
können Sie Ihre bevorzugte Version von Node.js festlegen:nodejs18
(empfohlen).nodejs16
nodejs14
nodejs12
nodejs10
Python
gcloud functions deploy process_log_entry \ --runtime python310 \Mit den folgenden Werten für das Flag
--trigger-topic YOUR_PUBSUB_TOPIC
--runtime
können Sie Ihre bevorzugte Version von Python festlegen:python310
(empfohlen).python311
(Vorschau)python39
python38
python37
Einfach loslegen (Go)
gcloud functions deploy ProcessLogEntry \ --runtime go119 \Mit diesen Werten für das Flag
--trigger-topic YOUR_PUBSUB_TOPIC
--runtime
können Sie Ihre bevorzugte Version von Go festlegen:
go119
(empfohlen).go118
go116
go113
go111
Java
gcloud functions deploy java-log-function \ --entry-point StackdriverLogging \ --runtime java17 \ --memory 512MB \Mit den folgenden Werten für das Flag
--trigger-topic YOUR_PUBSUB_TOPIC
--runtime
können Sie Ihre bevorzugte Version von Java festlegen:
java17
(empfohlen).java11
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