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 destino.
O Eventarc entrega eventos ao receptor de eventos no formato CloudEvents por uma solicitação HTTP.
Nestas instruções, mostramos como configurar o roteamento de eventos de todos os tipos para um endpoint HTTP interno em uma rede de nuvem privada virtual (VPC). Para configurar o gatilho, você também precisa fornecer um ID de anexo de rede.
Os tipos de evento compatíveis são:
Eventos diretos: acionados por um evento não mediado, como uma atualização de um objeto em um bucket do Cloud Storage ou uma mensagem publicada em um tópico do Pub/Sub.
Eventos dos Registros de auditoria do Cloud: acionados quando um registro é produzido pelos Registros de auditoria do Cloud.
Eventos de terceiros: acionados pelos eventos de um provedor que não é do Google que oferece uma origem do Eventarc.
O endpoint HTTP interno pode ser um endereço IP interno ou um nome DNS totalmente qualificado (FQDN, na sigla em inglês) para qualquer endpoint HTTP na nuvem privada virtual. VPC. Veja a seguir dois exemplos de possíveis destinos de eventos:
- Uma instância de máquina virtual (VM) do Compute Engine: as instâncias do Compute Engine podem executar imagens públicas para Linux e Windows Server fornecidas pelo Google, além de imagens particulares personalizadas que você pode criar ou importar nos sistemas de produção. Para mais informações, consulte Instâncias de máquina virtual.
- Um balanceador de carga interno: um balanceador de carga de aplicativo interno do Google Cloud é um balanceador de carga regional de camada 7 baseado em proxy que permite executar e escalonar seus serviços em um endereço IP interno. Os balanceadores de carga de aplicativo internos distribuem o tráfego HTTP e HTTPS aos back-ends hospedados no Compute Engine, no Google Kubernetes Engine (GKE) e no Cloud Run. Para mais informações, consulte Visão geral do balanceador de carga de aplicativo interno.
Uma rede VPC é uma versão virtual de uma rede física, implementada dentro da rede de produção do Google. Uma rede VPC compartilhada é aquela definida em um projeto host e disponibilizada como uma rede compartilhada centralmente para recursos qualificados em projetos de serviço.
Um anexo de rede é um recurso regional que permite autorizar explicitamente um produtor a se conectar a uma rede VPC de consumidor. Para publicar eventos, o Eventarc usa o anexo de rede para estabelecer uma conexão com o endpoint HTTP interno hospedado em uma rede VPC.
Antes de começar
Antes de criar um gatilho do Eventarc para rotear eventos para um endpoint HTTP interno em uma rede VPC, é preciso criar um anexo de rede que aceite conexões na mesma rede e região que contêm o serviço de destino HTTP.
Estas instruções presumem que você já criou uma rede e uma sub-rede VPC e que implantou seu serviço de destino HTTP.
Para mais informações, consulte Receber eventos do Pub/Sub em um endpoint HTTP interno em uma rede VPC, que demonstra como implantar um endpoint HTTP interno em uma rede VPC e rota eventos do Pub/Sub para o endpoint.
Limitações conhecidas
Veja a seguir as limitações conhecidas ao rotear eventos para um endpoint HTTP interno em uma rede VPC:
Há um limite de 100 gatilhos do Eventarc para endpoints HTTP internos por projeto.
Somente os seguintes locais de gatilho do Eventarc são suportados:
asia-east1
europe-north1
europe-west1
us-central1
us-east1
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.
Ativar as APIs Cloud Logging e Eventarc.
Se aplicável, ative a API relacionada aos eventos diretos. Por exemplo, eventos 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.
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) para conceder à sua conta de serviço. Para mais informações, consulte Papéis e permissões para um endpoint HTTP interno em uma rede VPC.
Para papéis adicionais, clique em
Adicionar outro papel e adicione cada papel adicional.Clique em Continuar.
Para concluir a criação da conta, clique em Concluído.
Se você estiver criando um gatilho para eventos diretos do Cloud Storage, conceda o papel de Editor do Pub/Sub (
roles/pubsub.publisher
) ao agente de serviço do Cloud Storage:No console do Google Cloud, abra a página IAM.
Marque a caixa de seleção Incluir concessões de papel fornecidas pelo Google.
Na coluna Principal, encontre o agente de serviço do Cloud Storage com o formulário
service-PROJECT_NUMBER@gs-project-accounts.iam.gserviceaccount.com
e clique em Editar principal na linha correspondente.Clique em
Adicionar papel ou Adicionar outro papel.Na lista Selecionar um papel, filtre por Editor do Pub/Sub e selecione o papel.
Clique em Salvar.
Se o URI do endpoint HTTP interno na rede VPC usar o nome DNS interno de um serviço resolvível pelo Cloud DNS, conceda o Papel par do DNS (
roles/dns.peer
) no projeto host da VPC para o agente de serviço do Eventarc.Dependendo de como você configurou a rede VPC, o projeto host da VPC também pode ser seu projeto de gatilho do Eventarc.
No console do Google Cloud, na página do seletor de projetos, selecione o projeto host da VPC.
No console do Google Cloud, abra a página IAM.
Marque a caixa de seleção Incluir concessões de papel fornecidas pelo Google.
Modifique ou adicione o agente de serviço do Eventarc como principal:
Se o agente de serviço do Eventarc já tiver outros papéis no projeto, encontre a linha que contém o principal no formato
service-PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.com
e clique em Editar principal nessa linha e clique em Adicionar outro papel.Se o agente de serviço do Eventarc não tiver papéis existentes no projeto, clique em
Permitir acesso e, em seguida, insira o endereço de e-mail no formulárioservice-PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.com
.
Substitua
PROJECT_NUMBER
pelo número do projeto do Google Cloud para o projeto de gatilho do Eventarc. Encontre o número do projeto na página Boas-vindas do console do Google Cloud ou executando o seguinte comando:gcloud projects describe PROJECT_ID --format='value(projectNumber)'
Na lista Selecionar um papel, filtre por Par do DNS e depois selecione o papel.
Clique em Salvar.
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. Por exemplo, para eventos 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 mais informações, consulte Papéis e permissões para um endpoint HTTP interno em uma rede VPC.
Se o URI do endpoint HTTP interno na rede VPC usar onome do DNS interno de um serviço resolvível pelo Cloud DNS, conceda o Papel par do DNS (
roles/dns.peer
) no projeto host da VPC para o agente de serviço do Eventarc.Dependendo de como você configurou a rede VPC, o projeto host da VPC também pode ser seu projeto de gatilho do Eventarc.
gcloud projects add-iam-policy-binding VPC_HOST_PROJECT_ID \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.com \ --role=roles/dns.peer
Substitua:
VPC_HOST_PROJECT_ID
: o ID do projeto do Google Cloud para o projeto host da VPC.PROJECT_NUMBER
: o número do projeto do Google Cloud para o projeto de gatilho do Eventarc. Encontre o número do projeto na página Boas-vindas do console do Google Cloud ou executando o seguinte comando:
gcloud projects describe PROJECT_ID --format='value(projectNumber)'
Se você estiver criando um gatilho para eventos diretos do Cloud Storage, conceda ao Papel de Editor do Pub/Sub (
roles/pubsub.publisher
) do projeto para o agente de serviço do Cloud Storage:gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:service-PROJECT_NUMBER@gs-project-accounts.iam.gserviceaccount.com \ --role=roles/pubsub.publisher
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 hifens.
- Em Tipo de acionador, selecione Origens do Google ou Terceiros.
- Selecione um Provedor de eventos.
Esse é o serviço que é a origem dos eventos. No caso de uma fonte do Google, é diretamente ou por meio dos registros de auditoria.
- Dependendo do tipo de evento que você está gerando, siga um destes
procedimentos:
- Eventos diretos: na lista Tipo de evento, em eventos
Diretos, selecione um tipo de evento.
- Para eventos diretos do Cloud Pub/Sub, na lista Selecionar um tópico do Cloud Pub/Sub, escolha um tópico ou aceite o padrão Nenhum para que um novo tópico seja criado para você.
- Para eventos diretos do Cloud Storage, especifique ou procure o identificador globalmente exclusivo do bucket do Cloud Storage.
- Eventos de registro de auditoria: na lista Tipo de evento, nos eventos
pelos Registros de auditoria do Cloud, selecione um tipo de evento e
uma das seguintes opções :
- 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
.
- Eventos de terceiros: na lista Canal, selecione um
canal e, na lista Tipo de evento, selecione um evento.
Para mais informações, consulte Criar um canal e recuperar os detalhes dele.
- Eventos diretos: na lista Tipo de evento, em eventos
Diretos, selecione um tipo de evento.
- Se aplicável ao tipo de evento, na lista Event data content type, selecione application/json ou application/protobuf
para especificar a codificação do payload do evento.
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.
- Se for aplicável ao evento, clique em Adicionar filtro
e faça as seguintes especificações:
- No campo Atributo 1, dependendo do evento direto escolhido, selecione um ID de recurso que possa atuar como filtro de evento.
- Selecione um operador:
- Igual
- Padrão de caminho
Para mais informações, consulte Entender os padrões de caminho.
- No campo Valor do atributo 1, dependendo do operador escolhido, digite o valor exato ou aplique um padrão de caminho.
- Se um campo Atributo 2 for aplicável, especifique os valores apropriados.
- Na lista Região, selecione uma região.
Para evitar problemas de desempenho e residência de dados, o local precisa corresponder ao do serviço do Google Cloud que está gerando eventos.
Para este destino do evento, somente os seguintes locais são aceitos:
asia-east1
europe-north1
europe-west1
us-east1
Saiba mais em Locais do Eventarc.
- Selecione a conta de serviço que vai invocar seu
serviço.
ou crie uma nova conta de serviço.
Isso especifica o e-mail da conta de serviço do IAM associada ao gatilho e ao qual você atribuiu papéis específicos exigidos pelo Eventarc.
- Na lista Destino do evento, selecione
Endpoint HTTP (interno).
- Especifique o URI de destino. Esse é o URI do
endpoint HTTP interno na rede VPC que recebe
os eventos do gatilho. O URI pode ser um
endereço IP interno estático na
rede VPC endereçada pelo anexo de rede ou pelo
nome DNS interno.
de um serviço resolvível pelo Cloud DNS.
Se o endpoint HTTP usar um nome DNS interno, o Eventarc vai criar automaticamente zonas de peering de DNS e encaminhar as solicitações de DNS para as zonas de DNS na rede VPC de destino. Com o peering de DNS, é possível enviar solicitações para registros provenientes do namespace de uma zona a outra rede VPC. Para mais informações, consulte Zonas de peering e Criar uma zona de peering.
Se você estiver criando um gatilho para um destino do Cloud Run ou do Cloud Run functions usando um endereço DNS, verifique se Acesso privado do Google está ativado na sub-rede usada no anexo de rede. Caso contrário, não será possível resolver o endereço DNS.
- Na lista Anexo de rede, selecione um identificador
para o recurso de anexo de rede. Esse identificador é gerado depois
que você cria um anexo de rede. Para saber mais, consulte
Criar anexos de rede.
Os anexos de rede permitem que as redes VPC do produtor de serviço iniciem conexões com redes VPC do consumidor. O Eventarc usa o anexo de rede para estabelecer uma conexão com o endpoint HTTP interno hospedado na rede VPC do consumidor e publicar eventos.
Quando você cria um anexo de rede, é possível autorizar explicitamente uma conexão por meio das listas de aceitação e rejeição do produtor. Mesmo assim, o Eventarc pode atualizar a lista de aceitação de um anexo de rede com o ID do projeto adequado e sem qualquer intervenção da sua parte.
- Especifique o URI de destino. Esse é o URI do
endpoint HTTP interno na rede VPC que recebe
os eventos do gatilho. O URI pode ser um
endereço IP interno estático na
rede VPC endereçada pelo anexo de rede ou pelo
nome DNS interno.
de um serviço resolvível pelo Cloud DNS.
- Clique em Criar.
Depois que um gatilho é criado, os filtros da fonte 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 sinalizações obrigatórias e opcionais.
Eventos diretos
gcloud eventarc triggers create TRIGGER \ --location=LOCATION \ --destination-http-endpoint-uri=ENDPOINT_URI \ --network-attachment=NETWORK_ATTACHMENT_ID \ --event-filters="type=EVENT_FILTER_TYPE" \ --event-filters="COLLECTION_ID=RESOURCE_ID" \ --event-filters-path-pattern="COLLECTION_ID=PATH_PATTERN" \ --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
.Para evitar problemas de desempenho e residência de dados, o local precisa corresponder ao local do serviço do Google Cloud que está gerando eventos.
Para esse destino de evento, apenas os seguintes locais são compatíveis:
asia-east1
europe-north1
europe-west1
us-central1
us-east1
Saiba mais em Locais do Eventarc.
ENDPOINT_URI
: o URI do endpoint HTTP interno na rede VPC que recebe os eventos para o gatilho. O URI pode ser um endereço IP interno estático na rede VPC endereçada pelo anexo de rede ou pelo nome DNS interno de um serviço resolvível pelo Cloud DNS.Se o endpoint HTTP usar um nome DNS interno, o Eventarc vai criar automaticamente zonas de peering de DNS e encaminhar as solicitações de DNS para as zonas de DNS na rede VPC de destino. Com o peering de DNS, é possível enviar solicitações para registros provenientes do namespace de uma zona a outra rede VPC. Para mais informações, consulte Zonas de peering e Criar uma zona de peering.
Se você estiver criando um gatilho para um destino do Cloud Run ou do Cloud Run functions usando um endereço DNS, verifique se Acesso privado do Google está ativado na sub-rede usada no anexo de rede. Caso contrário, não será possível resolver o endereço DNS.
NETWORK_ATTACHMENT_ID
: identificador exclusivo do recurso de anexo de rede. O identificador é gerado depois que você cria um anexo de rede. Para saber mais, consulte Criar anexos de rede.Os anexos de rede permitem que as redes VPC do produtor de serviço iniciem conexões com redes VPC do consumidor. O Eventarc usa o anexo de rede para estabelecer uma conexão com o endpoint HTTP interno hospedado na rede VPC do consumidor e publicar eventos.
Quando você cria um anexo de rede, é possível autorizar explicitamente uma conexão por meio das listas de aceitação e rejeição do produtor. independentemente disso, o Eventarc pode atualizar a lista de aceitação de um anexo de rede com o ID do projeto adequado e sem qualquer intervenção da sua parte.
EVENT_FILTER_TYPE
: o identificador do evento. Um evento é gerado quando uma chamada de API para o método é bem-sucedida. Para operações de longa duração, o evento é gerado apenas no final da operação e apenas se a ação for realizada com êxito. Consulte a lista de tipos de eventos diretos compatíveis.COLLECTION_ID
(opcional): o componente resource que pode atuar como um filtro de evento. Por exemplo, para o Cloud Run functions, éfunction
.RESOURCE_ID
: o identificador do recurso usado como o valor de filtragem da coleção associada. Para mais informações, consulte ID do recurso.PATH_PATTERN
: o padrão de caminho a ser aplicado ao filtrar o recurso.SERVICE_ACCOUNT_NAME
: o nome da conta de serviço gerenciada pelo usuário.PROJECT_ID
: é o ID do projeto do Google Cloud.
Observações:
- A sinalização
--event-filters="type=EVENT_FILTER_TYPE"
é obrigatória. Se nenhum outro filtro de evento for definido, a correspondência dos eventos de todos os recursos será feita. - Não é possível alterar
EVENT_FILTER_TYPE
depois da criação. Para mudarEVENT_FILTER_TYPE
, crie um novo gatilho e exclua o anterior. - 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 compatíveis; No entanto, ao usar a sinalização--event-filters-path-pattern
, é possível definir um padrão de caminho do recurso. - A sinalização
--service-account
é usada para especificar o e-mail da conta de serviço do IAM associado ao acionador.
Exemplo:
gcloud eventarc triggers create helloworld-trigger \ --location=us-central1 \ --destination-http-endpoint-uri=http://my-vm.us-central1-a.c.my-project.internal \ --network-attachment="projects/my-project/regions/us-central1/networkAttachments/my-attachment-name" \ --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" \ --service-account=my-service-account@my-project.iam.gserviceaccount.com
Eventos de registro de auditoria
gcloud eventarc triggers create TRIGGER \ --location=LOCATION \ --destination-http-endpoint-uri=ENDPOINT_URI \ --network-attachment=NETWORK_ATTACHMENT_ID \ --event-filters="type=google.cloud.audit.log.v1.written" \ --event-filters="serviceName=SERVICE_NAME" \ --event-filters="methodName=METHOD_NAME" \ --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
.Para evitar problemas de desempenho e residência de dados, o local precisa corresponder ao local do serviço do Google Cloud que está gerando eventos. São suportados os seguintes locais:
asia-east1
europe-north1
europe-west1
us-central1
us-east1
Saiba mais em Locais do Eventarc.
ENDPOINT_URI
: o URI do endpoint HTTP interno na rede VPC que recebe os eventos para o gatilho. O URI pode ser um endereço IP interno estático na rede VPC endereçada pelo anexo de rede ou pelo nome DNS interno de um serviço resolvível pelo Cloud DNS.Se o endpoint HTTP usar um nome DNS interno, o Eventarc vai criar automaticamente zonas de peering de DNS e encaminhar as solicitações de DNS para as zonas de DNS na rede VPC de destino. Com o peering de DNS, é possível enviar solicitações para registros provenientes do namespace de uma zona a outra rede VPC. Para mais informações, consulte Zonas de peering e Criar uma zona de peering.
NETWORK_ATTACHMENT_ID
: identificador exclusivo do recurso de anexo de rede. O identificador é gerado depois que você cria um anexo de rede. Para saber mais, consulte Criar anexos de rede.Os anexos de rede permitem que as redes VPC do produtor de serviço iniciem conexões com redes VPC do consumidor. O Eventarc usa o anexo de rede para estabelecer uma conexão com o endpoint HTTP interno hospedado na rede VPC do consumidor e publicar eventos.
Quando você cria um anexo de rede, é possível autorizar explicitamente uma conexão por meio das listas de aceitação e rejeição do produtor. independentemente disso, o Eventarc pode atualizar a lista de aceitação de um anexo de rede com o ID do projeto adequado e sem qualquer intervenção da sua parte.
SERVICE_NAME
: o identificador do serviço do Google Cloud. Consulte a lista de tipos de eventos de registro de auditoria compatíveis.METHOD_NAME
: o identificador da operação. Consulte a lista de tipos de eventos de registro de auditoria compatíveis.SERVICE_ACCOUNT_NAME
: o nome da conta de serviço gerenciada pelo usuário.PROJECT_ID
: é o ID do projeto do Google Cloud.
Observações:
- Essas 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 compatíveis; No entanto, ao usar a sinalização--event-filters-path-pattern
, é possível definir um padrão de caminho do recurso. - 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 IAM associado ao acionador.
Exemplo:
gcloud eventarc triggers create helloworld-trigger \ --location=us-central1 \ --destination-http-endpoint-uri=http://10.10.10.2 \ --network-attachment="projects/my-project/regions/us-central1/networkAttachments/my-attachment" \ --event-filters="type=google.cloud.audit.log.v1.written" \ --event-filters="serviceName=eventarc.googleapis.com" \ --event-filters="methodName=google.cloud.eventarc.v1.Eventarc.GetTrigger" \ --event-filters="resourceName=projects/my-project/locations/us-central1/triggers/my-trigger" \ --service-account=my-service-account@my-project.iam.gserviceaccount.com
Eventos de terceiros
gcloud eventarc triggers create TRIGGER \ --location=LOCATION \ --destination-http-endpoint-uri=ENDPOINT_URI \ --network-attachment=NETWORK_ATTACHMENT_ID \ --event-filters="type=EVENT_FILTER_TYPE" \ --channel=CHANNEL_NAME \ --project=PROJECT_ID \ --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
.Para evitar problemas de desempenho e residência de dados, o local precisa corresponder ao local do serviço do Google Cloud que está gerando eventos.
Para esse destino de evento, apenas os seguintes locais são compatíveis:
asia-east1
europe-north1
europe-west1
us-central1
us-east1
Saiba mais em Locais do Eventarc.
ENDPOINT_URI
: o URI do endpoint HTTP interno na rede VPC que recebe os eventos para o gatilho. O URI pode ser um endereço IP interno estático na rede VPC endereçada pelo anexo de rede ou pelo nome DNS interno de um serviço resolvível pelo Cloud DNS.Se o endpoint HTTP usar um nome DNS interno, o Eventarc vai criar automaticamente zonas de peering de DNS e encaminhar as solicitações de DNS para as zonas de DNS na rede VPC de destino. Com o peering de DNS, é possível enviar solicitações para registros provenientes do namespace de uma zona a outra rede VPC. Para mais informações, consulte Zonas de peering e Criar uma zona de peering.
NETWORK_ATTACHMENT_ID
: identificador exclusivo do recurso de anexo de rede. O identificador é gerado depois que você cria um anexo de rede. Para saber mais, consulte Criar anexos de rede.Os anexos de rede permitem que as redes VPC do produtor de serviço iniciem conexões com redes VPC do consumidor. O Eventarc usa o anexo de rede para estabelecer uma conexão com o endpoint HTTP interno hospedado na rede VPC do consumidor e publicar eventos.
Quando você cria um anexo de rede, é possível autorizar explicitamente uma conexão por meio das listas de aceitação e rejeição do produtor. independentemente disso, o Eventarc pode atualizar a lista de aceitação de um anexo de rede com o ID do projeto adequado e sem qualquer intervenção da sua parte.
EVENT_FILTER_TYPE
: o tipo de evento aceito pelo provedor. Consulte a lista de tipos de evento de terceiros compatíveis.CHANNEL_NAME
: um nome para o canal. Para mais informações, consulte Criar um canal e recuperar os detalhes dele.PROJECT_ID
: é o ID do projeto do Google Cloud.SERVICE_ACCOUNT_NAME
: o nome da conta de serviço gerenciada pelo usuário.
Observações:
- A sinalização
--event-filters="type=EVENT_FILTER_TYPE"
é obrigatória. Se nenhum outro filtro de evento for definido, a correspondência dos eventos de todos os recursos será feita. - Não é possível alterar
EVENT_FILTER_TYPE
depois da criação. Para mudarEVENT_FILTER_TYPE
, crie um novo gatilho e exclua o anterior. - 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. - A sinalização
--service-account
é usada para especificar o e-mail da conta de serviço do IAM associado ao acionador.
Exemplo:
gcloud eventarc triggers create helloworld-trigger \ --location=us-central1 \ --destination-http-endpoint-uri=http://my-vm.us-central1-a.c.my-project.internal \ --network-attachment="projects/my-project/regions/us-central1/networkAttachments/my-attachment-name" \ --event-filters="type=third-party-event-type" \ --channel=my-channel \ --project=my-project-ID \ --service-account=my-service-account@my-project.iam.gserviceaccount.com
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.
A seguir
- Visão geral do Eventarc
- Gerenciar gatilhos
- Tutorial: receber eventos do Pub/Sub em um endpoint HTTP interno em uma rede VPC
- Tutorial: receber eventos do Pub/Sub em um endpoint HTTP particular em um cluster particular do GKE