Gatilhos secundários com o Cloud Logging
Muitos Google Cloud eventos são registrados nos Registros de auditoria do Cloud. É possível filtrar esses registros e encaminhá-los para tópicos do Pub/Sub usando coletores. Esses tópicos do Pub/Sub podem enviar notificações que acionam as funções do Cloud Run. Isso permite que você crie eventos personalizados de qualquer Google Cloud serviço que produzaregistros de auditoria.
Configuração
Para executar o exemplo neste documento, você precisará de um Tópico do Pub/Sub e um coletor do Cloud Logging. A amostra usa-os para encaminhar registros de auditoria do Cloud para uma função do Cloud Run.
Estrutura do evento
Como todas as funções acionadas pelo Pub/Sub, as funções acionadas pelas entradas de registro do Cloud recebem um objeto PubsubMessage
que tem como parâmetro data
uma string com codificação base64
. Para eventos de registro do Cloud, a decodificação desse valor retorna a entrada de registro relevante como uma string JSON.
Código de amostra
É possível usar uma função acionada pelo Pub/Sub para detectar e responder a registros exportados do Cloud:
Node.js
Python
Go
Java
Como implantar uma função
Use o seguinte comando para implantar a função:
Node.js
gcloud functions deploy processLogEntry \ --runtime nodejs22 \
--trigger-topic YOUR_PUBSUB_TOPIC/
FLAGS...
Use a flag --runtime
para especificar o ID do ambiente de execução de uma versão do Node.js compatível a fim de executar a função.
Python
gcloud functions deploy process_log_entry \ --runtime python312 \
--trigger-topic YOUR_PUBSUB_TOPIC/
FLAGS...
Use a flag --runtime
para especificar o ID do ambiente de execução de uma versão compatível do Python a fim de executar a função.
Go
gcloud functions deploy ProcessLogEntry \ --runtime go122 \
--trigger-topic YOUR_PUBSUB_TOPIC/
FLAGS...
Use a flag --runtime
para especificar o ID do ambiente de execução de uma versão do Go compatível a fim de executar a função.
Java
gcloud functions deploy java-log-function \ --entry-point StackdriverLogging \ --runtime java21 \ --memory 512MB \
--trigger-topic YOUR_PUBSUB_TOPIC/
FLAGS...
Use a flag --runtime
para especificar o ID do ambiente de execução de uma versão compatível do Java a fim de executar a função.
Como acionar uma função
Quando uma entrada de registro do Cloud que corresponde a um dos seus filtros é criada, você precisa ver entradas de registro correspondentes à sua função:
Method: METHOD Resource: projects/YOUR_GCLOUD_PROJECT/... Initiator: YOUR_EMAIL_ADDRESS