Trigger di seconde parti con Cloud Logging
Molti eventi di Google Cloud vengono registrati in Cloud Audit Logs. Puoi filtra questi log e inoltrali agli argomenti Pub/Sub utilizzando sink. Questi argomenti Pub/Sub possono quindi inviare notifiche che attivano le funzioni Cloud Functions. Questo ti consente di creare eventi da qualsiasi servizio Google Cloud che produce log di controllo.
Configurazione
Per eseguire l'esempio in questo documento, è necessario un Argomento Pub/Sub e un sink Cloud Logging. Nell'esempio vengono utilizzati per inoltrare Cloud Audit Logs a una Cloud Function.
Struttura evento
Come tutte le funzioni attivate da Pub/Sub, le funzioni attivate da
Le voci di log di Cloud ricevono un PubsubMessage
il cui parametro data
è una stringa codificata in base64
. Per log di Cloud
eventi, 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 rispondi ai log di Cloud esportati:
Node.js
Python
Vai
Java
Deployment di una funzione
Utilizza questo comando per eseguire il deployment della funzione:
Node.js
gcloud functions deploy processLogEntry \ --runtime nodejs20 \
--trigger-topic YOUR_PUBSUB_TOPIC/
FLAGS...
Utilizza la --runtime
per specificare l'ID runtime di un
versione Node.js supportata per l'esecuzione
la tua funzione.
Python
gcloud functions deploy process_log_entry \ --runtime python312 \
--trigger-topic YOUR_PUBSUB_TOPIC/
FLAGS...
Utilizza la --runtime
per specificare l'ID runtime di un
versione Python supportata per l'esecuzione
la tua funzione.
Vai
gcloud functions deploy ProcessLogEntry \ --runtime go121 \
--trigger-topic YOUR_PUBSUB_TOPIC/
FLAGS...
Utilizza la --runtime
per specificare l'ID runtime di un
versione Go supportata per l'esecuzione
la tua funzione.
Java
gcloud functions deploy java-log-function \ --entry-point StackdriverLogging \ --runtime java17 \ --memory 512MB \
--trigger-topic YOUR_PUBSUB_TOPIC/
FLAGS...
Utilizza la --runtime
per specificare l'ID runtime di un
versione Java supportata per l'esecuzione
la tua funzione.
Attivazione di una funzione
Quando viene creata una voce di log di Cloud che corrisponde a uno dei tuoi filtri, dovrebbe vedere corrispondente voci di log per la tua funzione:
Method: METHOD Resource: projects/YOUR_GCLOUD_PROJECT/... Initiator: YOUR_EMAIL_ADDRESS