Trigger di seconde parti con Cloud Logging
Molti eventi Google Cloud vengono registrati in Cloud Audit Logs. Puoifiltrare questi log e inoltrarli agli argomenti Pub/Sub utilizzando destinazioni. 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 genera audit log.
Configurazione
Per eseguire l'esempio in questo documento, devi avere un argomento Pub/Sub e un destinazione di Cloud Logging. Il sample li utilizza per inoltrare Cloud Audit Logs a una funzione Cloud Run.
Struttura dell'evento
Come tutte le funzioni attivate da Pub/Sub, le funzioni attivate dalle voci di log di Cloud ricevono un oggetto PubsubMessage
il cui parametro data
è una stringa codificata in base64
. Per gli eventi dei 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 per rilevare e rispondere ai log di Cloud esportati:
Node.js
Python
Vai
Java
Eseguire il deployment di una funzione
Utilizza 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.
Vai
gcloud functions deploy ProcessLogEntry \ --runtime go122 \
--trigger-topic YOUR_PUBSUB_TOPIC/
FLAGS...
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 java21 \ --memory 512MB \
--trigger-topic YOUR_PUBSUB_TOPIC/
FLAGS...
Utilizza 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 corrispondente a uno dei tuoi filtri, dovresti vedere le voci di log corrispondenti per la tua funzione:
Method: METHOD Resource: projects/YOUR_GCLOUD_PROJECT/... Initiator: YOUR_EMAIL_ADDRESS