Activadores secundarios con Cloud Logging
Muchos eventos de Google Cloud Platform se encuentran en los registros de auditoría de Cloud. Puedes filtrar estos registros y reenviarlos a los temas de Pub/Sub mediante receptores. Luego, estos temas de Pub/Sub pueden enviar notificaciones que activan funciones de Cloud Functions. Esto te permite crear eventos personalizados desde cualquier servicio de Google Cloud Platform que produzca registros de auditoría.
Configuración
Para ejecutar la muestra que se encuentra a continuación, necesitarás un tema de Pub/Sub y un receptor de Cloud Logging. La muestra los usa para desviar registros de auditoría de Cloud a una función de Cloud Functions.
Estructura de eventos
Como ocurre con todas las funciones activadas por Pub/Sub, las que se activan mediante entradas de registro de Cloud reciben un objeto PubsubMessage
cuyo parámetro data
es una string codificada en base64
. En el caso de los eventos de registro de Cloud, la decodificación de este valor muestra la entrada de registro pertinente como una string JSON.
Código de muestra
Puedes usar una función activada por Pub/Sub como la que se muestra a continuación para detectar registros de Cloud exportados y responder a ellos:
Node.js
Python
Comienza a usarlo
Java
Implementa una función
Usa el siguiente comando para implementar la función:
Node.js
gcloud functions deploy processLogEntry \ --runtime nodejs18 \Puedes usar los siguientes valores para que la marca
--trigger-topic YOUR_PUBSUB_TOPIC
--runtime
especifique tu versión preferida de Node.js:nodejs18
(recomendada)nodejs16
nodejs14
nodejs12
nodejs10
Python
gcloud functions deploy process_log_entry \ --runtime python310 \Puedes usar los siguientes valores para que la marca
--trigger-topic YOUR_PUBSUB_TOPIC
--runtime
especifique tu versión preferida de Python:python310
(recomendada)python311
(vista previa)python39
python38
python37
Comienza a usarlo
gcloud functions deploy ProcessLogEntry \ --runtime go119 \Puedes usar los siguientes valores en la marca
--trigger-topic YOUR_PUBSUB_TOPIC
--runtime
para especificar tu versión preferida de Go:
go119
(recomendada)go118
go116
go113
go111
Java
gcloud functions deploy java-log-function \ --entry-point StackdriverLogging \ --runtime java17 \ --memory 512MB \Puedes usar los siguientes valores en la marca
--trigger-topic YOUR_PUBSUB_TOPIC
--runtime
para especificar tu versión preferida de Go Java:
java17
(recomendada)java11
Activa una función
Cuando se crea una entrada de registro de Cloud que coincide con uno de tus filtros, deberías consultar las entradas de registro correspondientes para tu función:
Method: METHOD Resource: projects/YOUR_GCLOUD_PROJECT/... Initiator: YOUR_EMAIL_ADDRESS