Rotear eventos para um endpoint HTTP interno em uma rede VPC

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:

  • Não é possível criar mais de um gatilho do Eventarc para o mesmo nome de DNS.

  • 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

  1. No Console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  2. Ativar as APIs Cloud Logging e Eventarc.

    Ativar as APIs

  3. Se aplicável, ative a API relacionada aos eventos diretos. Por exemplo, para eventos do Cloud Functions, ative cloudfunctions.googleapis.com.

  4. 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.

    1. No Console do Google Cloud, acesse a página Criar conta de serviço.

      Acesse "Criar conta de serviço"

    2. Selecione o projeto.

    3. 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.

    4. Clique em Criar e continuar.

    5. 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.

    6. Clique em Continuar.

    7. Para concluir a criação da conta, clique em Concluído.

  5. 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:

    1. No console do Google Cloud, abra a página IAM.

      Acessar IAM

    2. Marque a caixa de seleção Incluir concessões de papel fornecidas pelo Google.

    3. 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.

    4. Clique em Adicionar papel ou Adicionar outro papel.

    5. Na lista Selecionar um papel, filtre por Editor do Pub/Sub e selecione o papel.

    6. Clique em Save.

  6. 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.

    1. No console do Google Cloud, na página do seletor de projetos, selecione o projeto host da VPC.

      Acessar o seletor de projetos

    2. No console do Google Cloud, abra a página IAM.

      Acessar IAM

    3. Marque a caixa de seleção Incluir concessões de papel fornecidas pelo Google.

    4. 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ário service-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)'
    5. Na lista Selecionar um papel, filtre por Par do DNS e depois selecione o papel.

    6. Clique em Save.

gcloud

  1. No Console do Google Cloud, ative o Cloud Shell.

    Ativar o Cloud Shell

    Na parte inferior do Console do Google Cloud, uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando. O Cloud Shell é um ambiente shell com a CLI do Google Cloud já instalada e com valores já definidos para o projeto atual. A inicialização da sessão pode levar alguns segundos.

  2. Ative as APIs Cloud Logging, Eventarc e Eventarc Publishing.

    gcloud services enable logging.googleapis.com \
      eventarc.googleapis.com \
      eventarcpublishing.googleapis.com
    
  3. Se aplicável, ative a API relacionada aos eventos. Por exemplo, para eventos do Cloud Functions, ative cloudfunctions.googleapis.com.

  4. 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.

    1. 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.

    2. 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.

  5. 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)'
  6. 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

  1. No Console do Google Cloud, acesse a página Gatilhos do Eventarc.

    Acessar gatilhos

  2. Clique em Criar gatilho.
  3. 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.

  4. Em Tipo de acionador, selecione Origens do Google ou Terceiros.
  5. 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.

  6. Dependendo do tipo de evento que você está gerando, siga um destes procedimentos:
    1. Eventos diretos: na lista Tipo de evento, em eventos Diretos, selecione um tipo de evento.
      1. 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ê.
      2. Para eventos diretos do Cloud Storage, especifique ou procure o identificador globalmente exclusivo do bucket do Cloud Storage.
    2. 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 ou projects/_/buckets/**/r*.txt.
    3. 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.

  7. 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.

  8. Se for aplicável ao evento, clique em Adicionar filtro e faça as seguintes especificações:
    1. No campo Atributo 1, dependendo do evento direto escolhido, selecione um ID de recurso que possa atuar como filtro de evento.
    2. Selecione um operador:
    3. No campo Valor do atributo 1, dependendo do operador escolhido, digite o valor exato ou aplique um padrão de caminho.
    4. Se um campo Atributo 2 for aplicável, especifique os valores apropriados.
  9. 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.

  10. 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.

  11. Na lista Destino do evento, selecione Endpoint HTTP (interno).
    1. 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.

      Não é possível criar mais de um acionador para o mesmo nome DNS.

    2. 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.

  12. Clique em Criar.
  13. 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 propriedade eventarc/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.

    Não é possível criar mais de um acionador para o mesmo nome 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 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 mudar EVENT_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 propriedade eventarc/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.

    Não é possível criar mais de um acionador para o mesmo nome 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.

  • 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 propriedade eventarc/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.

    Não é possível criar mais de um acionador para o mesmo nome 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 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 mudar EVENT_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

  1. No Console do Google Cloud, acesse a página Gatilhos do Eventarc.

    Acessar gatilhos

    Confira nesta página os gatilhos em todos os locais e os detalhes como nomes, regiões, provedores de eventos, destinos e muito mais.

  2. Para filtrar os gatilhos, siga estas etapas:

    1. Clique em Filtrar ou no campo Filtrar gatilhos.
    2. 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.

  3. 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