Trigger di seconde parti con Cloud Logging
Molti eventi Google Cloud Platform vengono registrati nell'audit log di Cloud. Puoi filtrare questi log e inoltrarli agli argomenti Pub/Sub utilizzando i sink. Questi argomenti Pub/Sub possono quindi inviare notifiche che attivano Cloud Functions. Questo consente di creare eventi personalizzati da qualsiasi servizio Google Cloud Platform che produce audit log.
Configurazione
Per eseguire l'esempio di seguito, sono necessari un argomento Pub/Sub e un sink di Cloud Logging. L'esempio li utilizza per inoltrare Cloud Audit Logs a una funzione Cloud Functions.
Struttura dell'evento
Come tutte le funzioni attivate da Pub/Sub, le funzioni attivate da voci di log Cloud ricevono un oggetto PubsubMessage
il cui parametro data
è una stringa con codifica base64
. Per gli eventi del log Cloud, la decodifica di questo valore restituisce la voce di log pertinente come stringa JSON.
Codice di esempio
Puoi utilizzare una funzione Pub/Sub-trigger come quella di seguito per rilevare e rispondere ai log cloud esportati:
Node.js
Python
Go
Java
Deployment di una funzione
Utilizza il comando seguente per eseguire il deployment della funzione:
Node.js
gcloud functions deploy processLogEntry \ --runtime nodejs18 \Puoi utilizzare i seguenti valori per il flag
--trigger-topic YOUR_PUBSUB_TOPIC
--runtime
per specificare la versione di Node.js che preferisci:
nodejs18
(consigliato)nodejs16
nodejs14
nodejs12
nodejs10
Python
gcloud functions deploy process_log_entry \ --runtime python310 \Puoi utilizzare i seguenti valori per il flag
--trigger-topic YOUR_PUBSUB_TOPIC
--runtime
per specificare la versione di Python che preferisci:
python310
(consigliato)python311
(anteprima)python39
python38
python37
Go
gcloud functions deploy ProcessLogEntry \ --runtime go119 \Puoi utilizzare i seguenti valori per il flag
--trigger-topic YOUR_PUBSUB_TOPIC
--runtime
per specificare la tua versione di Go preferita:go119
(consigliato)go118
go116
go113
go111
Java
gcloud functions deploy java-log-function \ --entry-point StackdriverLogging \ --runtime java17 \ --memory 512MB \Puoi utilizzare i seguenti valori per il flag
--trigger-topic YOUR_PUBSUB_TOPIC
--runtime
per specificare la versione di Java che preferisci:
java17
(consigliato)java11
Attivazione di una funzione
Quando viene creata una voce di log Cloud che corrisponde a uno dei tuoi filtri, dovresti visualizzare le voci di log corrispondenti per la tua funzione:
Method: METHOD Resource: projects/YOUR_GCLOUD_PROJECT/... Initiator: YOUR_EMAIL_ADDRESS