Trigger di seconde parti con Cloud Logging
Molti eventi di Google Cloud Platform vengono registrati negli audit log di Cloud. Puoi filtrare questi log e inoltrarli ad argomenti Pub/Sub utilizzando i sink. Questi argomenti Pub/Sub possono quindi inviare notifiche che attivano le funzioni Cloud Functions. Ciò consente di creare eventi personalizzati da qualsiasi servizio Google Cloud Platform che produce audit log.
Configurazione
Per eseguire l'esempio riportato di seguito, sono necessari un argomento Pub/Sub e un sink di Cloud Logging. Nell'esempio vengono utilizzati per inoltrare Cloud Audit Logs a una Cloud Function.
Struttura degli eventi
Come tutte le funzioni attivate da Pub/Sub, le funzioni attivate dalle voci di log Cloud ricevono un oggetto PubsubMessage
il cui parametro data
è una stringa codificata base64
. Per gli eventi di log Cloud, la decodifica di questo valore restituisce la voce di log pertinente come stringa JSON.
Codice di esempio
Puoi utilizzare una funzione attivata da Pub/Sub come quella riportata 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 nodejs20 \
--trigger-topic YOUR_PUBSUB_TOPIC
Utilizza il flag --runtime
per specificare l'ID runtime di una versione di Node.js supportata per eseguire la funzione.
Python
gcloud functions deploy process_log_entry \ --runtime python311 \
--trigger-topic YOUR_PUBSUB_TOPIC
Usa il flag --runtime
per specificare l'ID runtime di una versione Python supportata per eseguire la funzione.
Go
gcloud functions deploy ProcessLogEntry \ --runtime go121 \
--trigger-topic YOUR_PUBSUB_TOPIC
Utilizza il flag --runtime
per specificare l'ID runtime di una versione Go supportata per eseguire la funzione.
Java
gcloud functions deploy java-log-function \ --entry-point StackdriverLogging \ --runtime java17 \ --memory 512MB \
--trigger-topic YOUR_PUBSUB_TOPIC
Usa il flag --runtime
per specificare l'ID runtime di una versione Java supportata per eseguire la funzione.
Attivazione di una funzione
Quando viene creata una voce di log Cloud che corrisponde a uno dei filtri, dovresti vedere le voci di log corrispondenti per la tua funzione:
Method: METHOD Resource: projects/YOUR_GCLOUD_PROJECT/... Initiator: YOUR_EMAIL_ADDRESS