Um gatilho do Eventarc declara seu interesse em um determinado evento ou conjunto de eventos. Para configurar o roteamento de eventos, especifique filtros para o gatilho, incluindo a origem do evento e o serviço de destino do Cloud Run.
O Eventarc entrega eventos ao receptor de eventos no formato CloudEvents por uma solicitação HTTP.
Estas instruções mostram como configurar o roteamento para seu serviço do Cloud Run
que é acionado quando um registro de auditoria é criado e corresponde aos
critérios de filtro do gatilho. Para conferir uma lista dos eventos registro de auditoria aceitos pelo
Eventarc, incluindo valores serviceName
e methodName
, consulte
Tipos de evento do Google compatíveis com o Eventarc.
Para mais informações sobre como capturar eventos acionados quando um registro de auditoria é criado e corresponde aos critérios do filtro, consulte Determinar filtros de evento para os registros de auditoria do Cloud.
Preparar para criar um gatilho
Antes de criar um gatilho, atenda aos seguintes pré-requisitos:
Console
No Console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.
Ative as APIs Cloud Logging, Eventarc e Eventarc Publishing.
Se aplicável, ative a API relacionada aos eventos dos Registros de auditoria do Cloud. Por exemplo, para os registros de auditoria do Cloud Run functions, ative a API Cloud Functions.
Se você ainda não tiver uma, crie uma conta de serviço gerenciada pelo usuário e conceda a ela os papéis e as permissões necessários para que o Eventarc gerencie os eventos do serviço de destino.
No Console do Google Cloud, acesse a página Criar conta de serviço.
Selecione o projeto.
No campo Nome da conta de serviço, insira um nome. O Console do Google Cloud preenche o campo ID da conta de serviço com base nesse nome.
No campo Descrição da conta de serviço, insira uma descrição. Por exemplo,
Service account for event trigger
.Clique em Criar e continuar.
Para fornecer o acesso apropriado, na lista Selecionar um papel, escolha os papéis necessários do Identity and Access Management (IAM) a serem concedidos à conta de serviço no caso de invocações autenticadas ou não autenticadas. Para mais informações, consulte Papéis e permissões para os destinos do Cloud Run.
Para papéis adicionais, clique em
Adicionar outro papel e adicione cada papel adicional.Clique em Continuar.
Para concluir a criação da conta de serviço, clique em Concluído.
gcloud
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Ative as APIs Cloud Logging, Eventarc e Eventarc Publishing.
gcloud services enable logging.googleapis.com \ eventarc.googleapis.com \ eventarcpublishing.googleapis.com
Se aplicável, ative a API relacionada aos eventos dos Registros de auditoria do Cloud. Por exemplo, nos registros de auditoria do Cloud Run functions, ative
cloudfunctions.googleapis.com
.Se você ainda não tiver uma, crie uma conta de serviço gerenciada pelo usuário e conceda a ela os papéis e as permissões necessários para que o Eventarc gerencie os eventos do serviço de destino.
Crie a conta de serviço:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Substitua
SERVICE_ACCOUNT_NAME
pelo nome da conta de serviço. Ele precisa ter entre 6 e 30 caracteres e pode conter letras minúsculas, caracteres alfanuméricos e traços. Depois da criação, não é possível alterar o nome da conta de serviço.Conceda os papéis ou as permissões do Identity and Access Management (IAM) necessários para invocações autenticadas ou não autenticadas. Para mais informações, consulte Papéis e permissões para destinos do Cloud Run.
Criar um gatilho
É possível criar um gatilho do Eventarc usando a CLI do Google Cloud ou o console do Google Cloud.
Console
- No Console do Google Cloud, acesse a página Gatilhos do Eventarc.
- Clique em Criar gatilho.
- Digite um Nome de gatilho.
Esse é o ID do gatilho e precisa começar com uma letra. Ele pode conter até 63 letras minúsculas, números ou hífens.
- Em Tipo de gatilho, selecione Fontes do Google.
- Selecione um Provedor de eventos.
Esse é o serviço do Google que é a origem dos eventos usando os registros de auditoria. Por exemplo, selecione BigQuery.
O nome do provedor de eventos usado na documentação do Google Cloud associada pode não ter o prefixo Cloud ou Google Cloud. Por exemplo, no console, o Memorystore para Redis é chamado de Google Cloud Memorystore para Redis.
- Na lista Tipo de evento, nos eventos pelos Registros de auditoria do Cloud, selecione um tipo de evento.
- Selecione uma opção:
- Qualquer recurso: esse é o padrão e inclui recursos criados dinamicamente que têm identificadores gerados no momento da criação.
- Recurso específico: é necessário fornecer o nome completo do recurso.
- Padrão de caminho: é possível
filtrar recursos usando um padrão de caminho.
Por exemplo, digite
projects/_/buckets/eventarc-bucket/objects/random.txt
ouprojects/_/buckets/**/r*.txt
.
- Para especificar a codificação do payload do evento, na lista Tipo de conteúdo
de dados do evento, selecione application/json ou
application/protobuf.
Um payload de evento formatado em JSON é maior que um formatado em Protobuf. Isso pode afetar a confiabilidade dependendo do destino do evento e dos limites do tamanho do evento. Saiba mais em Problemas conhecidos.
- Na lista Região, selecione uma região.
Os gatilhos dos Registros de auditoria do Cloud para o Eventarc estão disponíveis em regiões específicas e na região global, mas não em locais birregionais e multirregionais. Para evitar problemas de desempenho e de residência de dados causados por um gatilho global, o Google recomenda que o local corresponda ao do serviço do Google Cloud que está gerando eventos. Saiba mais em Locais do Eventarc.
Se você especificar o local global, receberá eventos de todos os locais que produzem correspondências para os filtros de eventos. Por exemplo, ao criar um gatilho global do Eventarc, é possível receber eventos de recursos nas multirregiões da UE e dos EUA.
Há um problema conhecido com os gatilhos dos Registros de auditoria do Cloud para o Compute Engine que resulta em eventos originados de uma única região:
us-central1
. Isso não depende da localização da instância da máquina virtual. Ao criar o gatilho, defina o local dele comous-central1
ouglobal
. - Selecione a conta de serviço que vai invocar seu serviço
ou fluxo de trabalho.
ou crie uma nova conta de serviço.
Ele especifica o e-mail da conta de serviço do Identity and Access Management (IAM) associado ao gatilho e aos quais você já concedeu papéis específicos exigidos pelo Eventarc.
- Na lista Destino do evento, selecione Cloud Run.
- Selecione um serviço.
Esse é o nome do serviço que recebe os eventos do gatilho. O serviço precisa estar no mesmo projeto que o gatilho e receberá eventos como solicitações POST HTTP enviadas para o caminho de URL raiz (
/
) sempre que o evento for gerado. - Se preferir, especifique o Caminho do URL do serviço para enviar
a solicitação recebida.
Esse é o caminho relativo no serviço de destino para o qual os eventos do gatilho precisam ser enviados. Por exemplo:
/
,/route
,route
,route/subroute
. - Clique em Criar.
Depois que um gatilho é criado, os filtros da origem de eventos não podem ser modificados. Crie um novo gatilho e exclua o antigo. Para mais informações, consulte Gerenciar acionadores.
gcloud
Para criar um gatilho, execute um comando gcloud eventarc triggers create
com as flags obrigatórias e opcionais.
gcloud eventarc triggers create TRIGGER \ --location=LOCATION \ --destination-run-service=DESTINATION_RUN_SERVICE \ --destination-run-region=DESTINATION_RUN_REGION \ --event-filters="type=google.cloud.audit.log.v1.written" \ --event-filters="serviceName=SERVICE_NAME" \ --event-filters="methodName=METHOD_NAME" \ --event-data-content-type="EVENT_DATA_CONTENT_TYPE" \ --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
Substitua:
TRIGGER
: o ID do gatilho ou um identificador totalmente qualificado.LOCATION
: o local do gatilho do Eventarc. Como alternativa, é possível definir a propriedadeeventarc/location
; por exemplo:gcloud config set eventarc/location us-central1
.Os gatilhos dos Registros de auditoria do Cloud para o Eventarc estão disponíveis em regiões específicas e na região global, mas não em locais birregionais e multirregionais. Para evitar problemas de desempenho e de residência de dados causados por um gatilho global, o Google recomenda que o local corresponda ao do serviço do Google Cloud que está gerando eventos. Saiba mais em Locais do Eventarc.
Se você especificar o local global, receberá eventos de todos os locaisque produzem correspondências para os filtros de eventos. Por exemplo, ao criar um gatilho global do Eventarc, é possível receber eventos de recursos nas multirregiões da UE e dos EUA.
Há um problema conhecido com os gatilhos dos Registros de auditoria do Cloud para o Compute Engine em eventos originados de uma única região:
us-central1
. Isso é independente da localização da instância da máquina virtual. Ao criar o gatilho, defina o local dele comous-central1
ouglobal
.-
DESTINATION_RUN_SERVICE
: o nome do serviço do Cloud Run que recebe os eventos do gatilho. O serviço pode estar em qualquer um dos locais compatíveis com o Cloud Run e não precisa estar no mesmo local que o gatilho. No entanto, o serviço precisa estar no mesmo projeto que o gatilho e receberá eventos como solicitações POST HTTP enviadas para o caminho de URL raiz (/
) sempre que o evento for gerado. -
DESTINATION_RUN_REGION
: (opcional) a região em que o serviço de destino do Cloud Run pode ser encontrado. Se não especificado, presume-se que o serviço está na mesma região que o gatilho
SERVICE_NAME
: o identificador do serviço do Google CloudMETHOD_NAME
: o identificador da operação
-
EVENT_DATA_CONTENT_TYPE
: (opcional) a codificação do payload do evento. Os valores podem serapplication/json
ouapplication/protobuf
. A codificação padrão éapplication/json
.Um payload de evento formatado em JSON é maior do que um formatado em Protobuf. Isso pode afetar a confiabilidade dependendo do destino do evento e dos limites dele no tamanho. Saiba mais em Problemas conhecidos.
SERVICE_ACCOUNT_NAME
: o nome da conta de serviço gerenciada pelo usuário.PROJECT_ID
: é seu ID do projeto no Google Cloud.
Observações:
Estas sinalizações são necessárias:
--event-filters="type=google.cloud.audit.log.v1.written"
--event-filters="serviceName=VALUE"
--event-filters="methodName=VALUE"
Opcionalmente, é possível filtrar eventos para um recurso específico usando a sinalização
--event-filters="resourceName=VALUE"
e especificando o caminho completo para o recurso. Omita a sinalização para recursos criados dinamicamente com identificadores gerados no momento da criação. Também é possível filtrar eventos para um conjunto de recursos usando a sinalização--event-filters-path-pattern="resourceName=VALUE"
e especificando o padrão de caminho do recurso.
- Cada gatilho pode ter vários filtros de eventos separados por vírgula em uma sinalização
--event-filters
=[ATTRIBUTE
=VALUE
,...] ou repita a sinalização para adicionar mais filtros. Somente eventos que correspondam a todos os filtros são enviados para o destino. Caracteres curinga e expressões regulares não são aceitos. - Após a criação de um gatilho, o tipo do filtro de evento não pode ser alterado. Para um tipo de evento diferente, crie um novo gatilho.
- A sinalização
--service-account
é usada para especificar o e-mail da conta de serviço do Identity and Access Management (IAM) associado ao gatilho. - Como opção, especifique um caminho relativo no serviço de destino
do Cloud Run para o qual os eventos do gatilho precisam ser enviados usando a
sinalização
--destination-run-path
.
Exemplo:
gcloud eventarc triggers create helloworld-trigger \
--location=us-central1 \
--destination-run-service=helloworld-events \
--destination-run-region=us-central1 \
--event-filters="type=google.cloud.audit.log.v1.written" \
--event-filters="serviceName=bigquery.googleapis.com" \
--event-filters="methodName=google.cloud.bigquery.v2.JobService.InsertJob" \
--service-account=${SERVICE_ACCOUNT_NAME}@${PROJECT_ID}.iam.gserviceaccount.com
Isso cria um gatilho chamado helloworld-trigger
para registros de auditoria que são
gravados por bigquery.googleapis.com
e para a operação identificada como
google.cloud.bigquery.v2.JobService.InsertJob
.
Terraform
É possível criar um gatilho para um destino do Cloud Run usando o Terraform. Para mais detalhes, acesse Criar um gatilho usando o Terraform.
Listar um gatilho
É possível confirmar a criação de um gatilho listando os gatilhos do Eventarc usando a CLI do Google Cloud ou o console do Google Cloud.
Console
No Console do Google Cloud, acesse a página Gatilhos do Eventarc.
Confira nesta página os gatilhos em todos os locais e os detalhes como nomes, regiões, provedores de eventos, destinos e muito mais.
Para filtrar os gatilhos, siga estas etapas:
- Clique em Filtrar ou no campo Filtrar gatilhos.
- Na lista Propriedades, selecione uma opção para filtrar os gatilhos.
É possível selecionar uma única propriedade ou usar o operador lógico
OR
para adicionar mais propriedades.Para classificar gatilhos, ao lado de qualquer cabeçalho de coluna com suporte, clique em
Ordenar.
gcloud
Execute o comando a seguir para listar os gatilhos:
gcloud eventarc triggers list --location=-
Esse comando lista os gatilhos em todos os locais e inclui detalhes como nomes, tipos, destinos e status.