Trigger di seconde parti con Cloud Logging
Molti eventi Google Cloud vengono registrati in Cloud Audit Logs. 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 Run. In questo modo puoi creare eventi personalizzati da qualsiasi servizio Google Cloud che produce audit log.
Configurazione
Per eseguire l'esempio in questo documento, ti servono un argomento Pub/Sub e un sink Cloud Logging. L'esempio li utilizza per inoltrare gli audit log Cloud a una funzione Cloud Run.
Struttura dell'evento
Come tutte le funzioni attivate da Pub/Sub, quelle attivate da
voci di log Cloud ricevono un oggetto PubsubMessage,
il cui parametro data è una stringa codificata in base64. Per gli eventi di log Cloud,
la decodifica di questo valore restituisce la voce di log pertinente come stringa JSON.
Codice campione
Puoi utilizzare una funzione attivata da Pub/Sub per rilevare e rispondere ai log Cloud esportati:
Node.js
Python
Go
Java
Deployment di una funzione
Usa il comando seguente per eseguire il deployment della funzione:
Node.js
gcloud functions deploy processLogEntry \ --runtime nodejs22 \
--trigger-topic YOUR_PUBSUB_TOPIC/
FLAGS...
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 python312 \
--trigger-topic YOUR_PUBSUB_TOPIC/
FLAGS...
Utilizza il flag --runtime
per specificare l'ID runtime di una
versione di Python supportata per eseguire
la funzione.
Go
gcloud functions deploy ProcessLogEntry \ --runtime go121 \
--trigger-topic YOUR_PUBSUB_TOPIC/
FLAGS...
Utilizza il flag --runtime
per specificare l'ID runtime di una
versione di 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/
FLAGS...
Utilizza il flag --runtime
per specificare l'ID runtime di una
versione di Java supportata
per eseguire la funzione.
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