Encaminhe eventos para um ponto final de HTTP interno numa rede VPC

Um acionador do Eventarc declara o seu interesse num determinado evento ou conjunto de eventos. Pode configurar o encaminhamento de eventos especificando filtros para o acionador, incluindo a origem do evento e o destino.

O Eventarc envia eventos para o recetor de eventos num formato CloudEvents através de um pedido HTTP.

Estas instruções mostram como configurar o encaminhamento de eventos para todos os tipos de eventos para um ponto final HTTP interno numa rede da nuvem virtual privada (VPC). Para configurar o acionador, também tem de fornecer um ID de anexo de rede.

  • Os tipos de eventos suportados são:

    • Eventos diretos: acionados por um evento não mediado, como uma atualização a um objeto num contentor do Cloud Storage ou uma mensagem publicada num tópico do Pub/Sub.

    • Eventos dos registos de auditoria do Cloud: acionados quando um registo é produzido através dos registos de auditoria do Cloud.

    • Eventos de terceiros: acionados pelos eventos de um fornecedor não pertencente à Google que oferece uma origem do Eventarc.

  • O ponto final HTTP interno pode ser um endereço IP interno ou nome DNS totalmente qualificado (FQDN) para qualquer ponto final HTTP na rede de nuvem privada virtual. Seguem-se 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 as imagens públicas para Linux e Windows Server que a Google fornece, bem como imagens personalizadas privadas que pode criar ou importar dos seus sistemas existentes. Para mais informações, consulte o artigo Instâncias de máquinas virtuais.
    • Um balanceador de carga interno: um Google Cloud balanceador de carga de aplicações interno é um balanceador de carga da camada 7 regional baseado em proxy que lhe permite executar e dimensionar os seus serviços através de um endereço IP interno. Os balanceadores de carga de aplicações internos distribuem o tráfego HTTP e HTTPS para back-ends alojados no Compute Engine, no Google Kubernetes Engine (GKE) e no Cloud Run. Para mais informações, consulte a Vista geral do balanceador de carga de aplicações interno.
  • Uma rede VPC é uma versão virtual de uma rede física que é implementada na rede de produção da Google. Uma rede VPC partilhada é uma rede VPC definida num projeto anfitrião e disponibilizada como uma rede partilhada centralmente para recursos elegíveis em projetos de serviço anexados.

  • Uma associação de rede é um recurso regional que lhe permite autorizar explicitamente um produtor a ligar-se a uma rede VPC de consumidor. Para publicar eventos, o Eventarc usa a associação de rede para estabelecer uma ligação ao ponto final HTTP interno alojado numa rede VPC.

Antes de começar

Antes de criar um acionador do Eventarc para encaminhar eventos para um ponto final HTTP interno numa rede VPC, tem de criar uma associação de rede que aceite ligações na mesma rede e região que contém o serviço de destino HTTP.

Estas instruções pressupõem que já criou uma rede VPC e uma sub-rede, e que implementou o seu serviço de destino HTTP.

Para mais informações, consulte o artigo Receba eventos do Pub/Sub num ponto final HTTP interno numa rede VPC que demonstra como implementar um ponto final HTTP interno numa rede VPC e encaminhar eventos do Pub/Sub para o ponto final.

Limitações conhecidas

Seguem-se as limitações conhecidas ao encaminhar eventos para um ponto final HTTP interno numa rede VPC:

  • Não pode criar mais do que um acionador do Eventarc para o mesmo nome DNS.

  • Existe um limite de 100 acionadores do Eventarc para pontos finais HTTP internos por projeto.

  • Apenas são suportadas as seguintes localizações de acionadores do Eventarc:

    • asia-east1
    • europe-north1
    • europe-west1
    • us-central1
    • us-east1

Prepare-se para criar um acionador

Antes de criar um acionador, conclua estes pré-requisitos:

Consola

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

    Aceder ao seletor de projetos

  2. Ative as APIs Cloud Logging e Eventarc.

    Ative as APIs

  3. Se aplicável, ative a API relacionada com os eventos diretos. Por exemplo, para eventos de funções do Cloud Run, ative cloudfunctions.googleapis.com.

  4. Se ainda não tiver uma, crie uma conta de serviço gerida pelo utilizador e, em seguida, conceda-lhe as funções e as autorizações necessárias para que o Eventarc possa gerir eventos para o seu serviço de destino.

    1. Na Google Cloud consola, aceda à página Criar conta de serviço.

      Aceda a Criar conta de serviço

    2. Selecione o seu projeto.

    3. No campo Nome da conta de serviço, introduza um nome. A Google Cloud consola preenche o campo ID da conta de serviço com base neste nome.

      No campo Descrição da conta de serviço, introduza uma descrição. Por exemplo, Service account for event trigger.

    4. Clique em Criar e continuar.

    5. Para conceder o acesso adequado, na lista Selecionar uma função, selecione as funções de gestão de identidade e de acesso (IAM) necessárias para conceder à sua conta de serviço. Para mais informações, consulte o artigo Funções e autorizações para um ponto final HTTP interno numa rede VPC.

      Para funções adicionais, clique em Adicionar outra função e adicione cada função adicional.

    6. Clique em Continuar.

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

  5. Se estiver a criar um acionador para eventos diretos do Cloud Storage, conceda a função de publicador do Pub/Sub (roles/pubsub.publisher) ao agente do serviço do Cloud Storage:

    1. Na Google Cloud consola, aceda à página IAM.

      Aceda ao IAM

    2. Selecione a caixa de verificação Incluir concessões de funções fornecidas pela Google.

    3. Na coluna Principal, encontre o agente do serviço Cloud Storage com o formulário service-PROJECT_NUMBER@gs-project-accounts.iam.gserviceaccount.com e, de seguida, clique em Editar principal na linha correspondente.

    4. Clique em Adicionar função ou Adicionar outra função.

    5. Na lista Selecionar uma função, filtre por Publicador do Pub/Sub e, em seguida, selecione a função.

    6. Clique em Guardar.

  6. Se o URI do ponto final HTTP interno na rede VPC usar o nome DNS interno de um serviço resolvível pelo Cloud DNS, conceda a função de par de DNS (roles/dns.peer) no projeto anfitrião da VPC ao agente de serviço do Eventarc.

    Tenha em atenção que, consoante a forma como configurou a rede VPC, o projeto anfitrião da VPC também pode ser o projeto de acionador do Eventarc.

    1. Na Google Cloud consola, na página do seletor de projetos, selecione o projeto anfitrião da VPC.

      Aceder ao seletor de projetos

    2. Na Google Cloud consola, aceda à página IAM.

      Aceda ao IAM

    3. Selecione a caixa de verificação Incluir concessões de funções fornecidas pela Google.

    4. Modifique ou adicione o agente de serviço do Eventarc como um principal:

      • Se o agente de serviço do Eventarc já tiver outras funções no projeto, localize a linha que contém o principal no formulário service-PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.com, clique em Editar principal nessa linha e clique em Adicionar outra função.

      • Se o agente de serviço do Eventarc não tiver funções existentes no projeto, clique em Conceder acesso e, de seguida, introduza o endereço de email no formulário service-PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.com.

      Substitua PROJECT_NUMBER pelo Google Cloud número do projeto do projeto do acionador do Eventarc. Pode encontrar o número do projeto na página Boas-vindas da consola Google Cloud ou executando o seguinte comando:

      gcloud projects describe PROJECT_ID --format='value(projectNumber)'
    5. Na lista Selecionar uma função, filtre por DNS Peer e, de seguida, selecione a função.

    6. Clique em Guardar.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    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.

  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 com os eventos. Por exemplo, para eventos de funções do Cloud Run, ative cloudfunctions.googleapis.com.

  4. Se ainda não tiver uma, crie uma conta de serviço gerida pelo utilizador e, em seguida, conceda-lhe as funções e as autorizações necessárias para que o Eventarc possa gerir eventos para o seu 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. Tem de ter entre 6 e 30 carateres e pode conter carateres alfanuméricos em minúsculas e traços. Depois de criar uma conta de serviço, não pode alterar o respetivo nome.

    2. Conceda as funções ou as autorizações da gestão de identidade e de acesso (IAM) necessárias. Para mais informações, consulte o artigo Funções e autorizações para um ponto final HTTP interno numa rede VPC.

  5. Se o URI do ponto final HTTP interno na rede VPC usar o nome DNS interno de um serviço resolvível pelo Cloud DNS, conceda a função DNS Peer (roles/dns.peer) no projeto anfitrião da VPC ao agente de serviço do Eventarc.

    Tenha em atenção que, consoante a forma como configurou a rede VPC, o projeto anfitrião da VPC também pode ser o projeto de acionador 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 o seguinte:

    • VPC_HOST_PROJECT_ID: o Google Cloud ID do projeto do anfitrião da VPC.
    • PROJECT_NUMBER: o Google Cloud número do projeto do seu projeto de acionador do Eventarc. Pode encontrar o número do projeto na página Boas-vindas da consola Google Cloud ou executando o seguinte comando:
    gcloud projects describe PROJECT_ID --format='value(projectNumber)'
  6. Se estiver a criar um acionador para eventos diretos do Cloud Storage, conceda a função de publicador do Pub/Sub (roles/pubsub.publisher) no projeto ao agente do 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

Crie um acionador

Pode criar um acionador do Eventarc através da CLI Google Cloud ou da Google Cloud consola.

Consola

  1. Na Google Cloud consola, aceda à página Triggers do Eventarc.

    Aceda a Acionadores

  2. Clique em Criar acionador.
  3. Escreva um Nome do acionador.

    Este é o ID do acionador e tem de começar com uma letra. Pode conter até 63 letras minúsculas, números ou hífenes.

  4. Para o Tipo de acionador, selecione Origens Google ou Terceiros.
  5. Selecione um Fornecedor de eventos.

    Este é o serviço que é a origem dos eventos. Para uma origem Google, isto é feito diretamente ou através dos respetivos registos de auditoria.

  6. Consoante o tipo de evento que está a encaminhar, faça uma das seguintes ações:
    1. Eventos diretos: na lista Tipo de evento, nos 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, selecione um tópico ou aceite o valor predefinido Nenhum para que seja criado um novo tópico.
      2. Para eventos diretos do Cloud Storage, especifique ou procure o identificador global exclusivo do contentor do Cloud Storage.
    2. Eventos do registo de auditoria: na lista Tipo de evento, nos eventos através dos registos de auditoria da nuvem, selecione um tipo de evento e, de seguida, selecione uma das seguintes opções:
      • Qualquer recurso: esta é a predefinição e inclui recursos criados dinamicamente que têm identificadores gerados no momento da criação.
      • Recurso específico: tem de indicar o nome do recurso completo.
      • Padrão do caminho: pode filtrar recursos através de um padrão do caminho. Por exemplo, escreva projects/_/buckets/eventarc-bucket/objects/random.txt ou escreva projects/_/buckets/**/r*.txt.
    3. Eventos de terceiros: na lista Canal, selecione um canal e, em seguida, na lista Tipo de evento, selecione um evento.

      Para mais informações, consulte Crie um canal e obtenha os respetivos detalhes.

  7. Se aplicável ao tipo de evento, na lista Tipo de conteúdo de dados de eventos, selecione application/json ou application/protobuf para especificar a codificação da carga útil do evento.

    Tenha em atenção que um payload de evento formatado em JSON é maior do que um formatado em Protobuf. Isto pode afetar a fiabilidade, dependendo do destino do evento e dos respetivos limites de tamanho do evento. Para mais informações, consulte a secção Problemas conhecidos.

  8. Se aplicável ao fornecedor de eventos, clique em Adicionar filtro e especifique o seguinte:
    1. No campo Atributo 1, consoante o evento direto que escolheu, selecione um ID do recurso que pode funcionar como um filtro de eventos.
    2. Selecione um operador:
    3. No campo Valor do atributo 1, consoante o operador que escolheu, escreva o valor exato ou aplique um padrão de caminho.
    4. Se um campo Atributo 2 for aplicável, especifique os valores adequados.
  9. Na lista Região, selecione uma localização.

    Para evitar problemas de desempenho e residência de dados, a localização tem de corresponder à localização do serviço que está a gerar eventos. Google Cloud

    Tenha em atenção que, para este destino de eventos, apenas são suportadas as seguintes localizações:

    • asia-east1
    • europe-north1
    • europe-west1
    • us-east1

    Para mais informações, consulte o artigo Localizações do Eventarc.

  10. Selecione a conta de serviço que vai invocar o seu serviço.

    Em alternativa, pode criar uma nova conta de serviço.

    Isto especifica o email da conta de serviço do IAM associado ao acionador e ao qual concedeu anteriormente funções específicas exigidas pelo Eventarc.

  11. Na lista Destino do evento, selecione Ponto final de HTTP (interno).
    1. Especifique o URI de destino. Este é o URI do ponto final HTTP interno na rede VPC que recebe os eventos para o acionador. O URI pode ser um endereço IP interno estático na rede VPC endereçada pela associação de rede ou o nome DNS interno de um serviço resolvível pelo Cloud DNS.

      Se o ponto final HTTP usar um nome DNS interno, o Eventarc cria automaticamente zonas de peering DNS e encaminha pedidos DNS para as zonas DNS na rede VPC de destino. A interligação de DNS permite-lhe enviar pedidos de registos provenientes do espaço de nomes de uma zona para outra rede VPC. Para mais informações, consulte os artigos Zonas de intercâmbio e Crie uma zona de intercâmbio.

      Tenha em atenção que não pode criar mais do que um acionador para o mesmo nome DNS.

    2. Na lista Anexo de rede, selecione um identificador para o recurso de anexo de rede. Este identificador é gerado depois de criar uma associação de rede. Para mais informações, consulte o artigo Crie anexos de rede.

      As associações de rede permitem que as redes VPC do produtor de serviços iniciem ligações às redes VPC do consumidor. O Eventarc usa a associação de rede para estabelecer uma ligação ao ponto final HTTP interno alojado na rede VPC do consumidor e publicar eventos.

      Quando cria uma associação de rede, pode autorizar explicitamente uma ligação através de listas de aceitação e rejeição do produtor. Independentemente disso, o Eventarc pode atualizar a lista de aceitação de uma associação de rede com o ID do projeto adequado e sem qualquer intervenção da sua parte.

  12. Clique em Criar.
  13. Depois de criar um acionador, não é possível modificar os filtros da origem do evento. Em alternativa, crie um novo acionador e elimine o anterior. Para mais informações, consulte o artigo Faça a gestão dos acionadores.

gcloud

Pode criar um acionador executando um gcloud eventarc triggers createcomando juntamente com flags 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 o seguinte:

  • TRIGGER: o ID do acionador ou um identificador totalmente qualificado.
  • LOCATION: a localização do acionador do Eventarc. Em alternativa, pode definir a propriedade eventarc/location ; por exemplo, gcloud config set eventarc/location us-central1.

    Para evitar problemas de desempenho e residência de dados, a localização tem de corresponder à localização do serviço que está a gerar eventos. Google Cloud

    Tenha em atenção que, para este destino de eventos, apenas são suportadas as seguintes localizações:

    • asia-east1
    • europe-north1
    • europe-west1
    • us-central1
    • us-east1

    Para mais informações, consulte o artigo Localizações do Eventarc.

  • ENDPOINT_URI: o URI do ponto final HTTP interno na rede VPC que recebe os eventos para o acionador. O URI pode ser um endereço IP interno estático na rede VPC endereçada pela associação de rede ou o nome DNS interno de um serviço resolvível pelo Cloud DNS.

    Se o ponto final HTTP usar um nome DNS interno, o Eventarc cria automaticamente zonas de peering de DNS e encaminha pedidos DNS para as zonas DNS na rede VPC de destino. A interligação de DNS permite-lhe enviar pedidos de registos provenientes do espaço de nomes de uma zona para outra rede VPC. Para mais informações, consulte os artigos Zonas de interligação e Crie uma zona de interligação.

    Tenha em atenção que não pode criar mais do que um acionador para o mesmo nome DNS.

  • NETWORK_ATTACHMENT_ID: identificador exclusivo do recurso de anexo de rede. O identificador é gerado depois de criar uma associação de rede. Para mais informações, consulte o artigo Crie anexos de rede.

    As associações de rede permitem que as redes VPC do produtor de serviços iniciem ligações às redes VPC do consumidor. O Eventarc usa a associação de rede para estabelecer uma ligação ao ponto final HTTP interno alojado na rede VPC do consumidor e publicar eventos.

    Quando cria uma associação de rede, pode autorizar explicitamente uma ligação através de listas de aceitação e rejeição do produtor. Independentemente disso, o Eventarc pode atualizar a lista de aceitação de uma associação de rede com o ID do projeto adequado e sem qualquer intervenção da sua parte.

  • EVENT_FILTER_TYPE: o identificador do evento. É gerado um evento quando uma chamada da API para o método é bem-sucedida. Para operações de longa duração, o evento só é gerado no final da operação e apenas se a ação for realizada com êxito. Consulte a lista de tipos de eventos diretos suportados.

  • COLLECTION_ID (opcional): o componente resource que pode atuar como um filtro de eventos; por exemplo, para funções do Cloud Run, este é function.

  • RESOURCE_ID: o identificador do recurso usado como o valor de filtragem para a coleção associada. Para mais informações, consulte ID do recurso.

  • PATH_PATTERN: o padrão do caminho a aplicar quando filtrar o recurso.

  • SERVICE_ACCOUNT_NAME: o nome da sua conta de serviço gerida pelo utilizador.

  • PROJECT_ID: o ID do Google Cloud projeto.

Notas:

  • A flag --event-filters="type=EVENT_FILTER_TYPE" é obrigatória. Se não estiver definido nenhum outro filtro de eventos, os eventos de todos os recursos são correspondentes.
  • EVENT_FILTER_TYPE não pode ser alterado após a criação. Para alterar EVENT_FILTER_TYPE, crie um novo acionador e elimine o anterior.
  • Cada acionador pode ter vários filtros de eventos, separados por vírgulas numa flag --event-filters=[ATTRIBUTE=VALUE,...] ou pode repetir a flag para adicionar mais filtros. Apenas os eventos que correspondem a todos os filtros são enviados para o destino. Os carateres universais e as expressões regulares não são suportados. No entanto, quando usa a flag --event-filters-path-pattern, pode definir um padrão do caminho do recurso.
  • A flag --service-account é usada para especificar o email 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 registo 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 o seguinte:

  • TRIGGER: o ID do acionador ou um identificador totalmente qualificado.
  • LOCATION: a localização do acionador do Eventarc. Em alternativa, pode definir a propriedade eventarc/location; por exemplo, gcloud config set eventarc/location us-central1.

    Para evitar problemas de desempenho e residência de dados, a localização tem de corresponder à localização do serviço que está a gerar eventos. Google Cloud As seguintes localizações são suportadas:

    • asia-east1
    • europe-north1
    • europe-west1
    • us-central1
    • us-east1

    Para mais informações, consulte o artigo Localizações do Eventarc.

  • ENDPOINT_URI: o URI do ponto final HTTP interno na rede VPC que recebe os eventos para o acionador. O URI pode ser um endereço IP interno estático na rede VPC endereçada pela associação de rede ou o nome DNS interno de um serviço resolvível pelo Cloud DNS.

    Se o ponto final HTTP usar um nome DNS interno, o Eventarc cria automaticamente zonas de peering de DNS e encaminha pedidos DNS para as zonas DNS na rede VPC de destino. A interligação de DNS permite-lhe enviar pedidos de registos provenientes do espaço de nomes de uma zona para outra rede VPC. Para mais informações, consulte os artigos Zonas de interligação e Crie uma zona de interligação.

    Tenha em atenção que não pode criar mais do que um acionador para o mesmo nome DNS.

  • NETWORK_ATTACHMENT_ID: identificador exclusivo do recurso de anexo de rede. O identificador é gerado depois de criar uma associação de rede. Para mais informações, consulte o artigo Crie anexos de rede.

    As associações de rede permitem que as redes VPC do produtor de serviços iniciem ligações às redes VPC do consumidor. O Eventarc usa a associação de rede para estabelecer uma ligação ao ponto final HTTP interno alojado na rede VPC do consumidor e publicar eventos.

    Quando cria uma associação de rede, pode autorizar explicitamente uma ligação através de listas de aceitação e rejeição do produtor. Independentemente disso, o Eventarc pode atualizar a lista de aceitação de uma associação de rede com o ID do projeto adequado e sem qualquer intervenção da sua parte.

  • SERVICE_NAME: o identificador do Google Cloud serviço. Consulte a lista de tipos de eventos de registo de auditoria suportados.

  • METHOD_NAME: o identificador da operação. Consulte a lista de tipos de eventos de registo de auditoria suportados.

  • SERVICE_ACCOUNT_NAME: o nome da sua conta de serviço gerida pelo utilizador.

  • PROJECT_ID: o ID do Google Cloud projeto.

Notas:

  • Estas flags são obrigatórias:
    • --event-filters="type=google.cloud.audit.log.v1.written"
    • --event-filters="serviceName=VALUE"
    • --event-filters="methodName=VALUE"
  • Opcionalmente, filtre eventos para um recurso específico usando a flag --event-filters="resourceName=VALUE" e especificando o caminho completo para o recurso. Omita a flag para recursos criados dinamicamente que tenham identificadores gerados no momento da criação. Em alternativa, filtre eventos para um conjunto de recursos através da flag --event-filters-path-pattern="resourceName=VALUE" e especificando o padrão do caminho do recurso.
  • Cada acionador pode ter vários filtros de eventos, separados por vírgulas numa flag --event-filters=[ATTRIBUTE=VALUE,...] ou pode repetir a flag para adicionar mais filtros. Apenas os eventos que correspondem a todos os filtros são enviados para o destino. Os carateres universais e as expressões regulares não são suportados. No entanto, quando usa a flag --event-filters-path-pattern, pode definir um padrão do caminho do recurso.
  • Depois de criar um acionador, não é possível alterar o tipo de filtro de eventos. Para um tipo de evento diferente, tem de criar um novo acionador.
  • A flag --service-account é usada para especificar o email 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 o seguinte:

  • TRIGGER: o ID do acionador ou um identificador totalmente qualificado.
  • LOCATION: a localização do acionador do Eventarc. Em alternativa, pode definir a propriedade eventarc/location ; por exemplo, gcloud config set eventarc/location us-central1.

    Para evitar problemas de desempenho e residência de dados, a localização tem de corresponder à localização do serviço que está a gerar eventos. Google Cloud

    Tenha em atenção que, para este destino de eventos, apenas são suportadas as seguintes localizações:

    • asia-east1
    • europe-north1
    • europe-west1
    • us-central1
    • us-east1

    Para mais informações, consulte o artigo Localizações do Eventarc.

  • ENDPOINT_URI: o URI do ponto final HTTP interno na rede VPC que recebe os eventos para o acionador. O URI pode ser um endereço IP interno estático na rede VPC endereçada pela associação de rede ou o nome DNS interno de um serviço resolvível pelo Cloud DNS.

    Se o ponto final HTTP usar um nome DNS interno, o Eventarc cria automaticamente zonas de peering de DNS e encaminha pedidos DNS para as zonas DNS na rede VPC de destino. A interligação de DNS permite-lhe enviar pedidos de registos provenientes do espaço de nomes de uma zona para outra rede VPC. Para mais informações, consulte os artigos Zonas de interligação e Crie uma zona de interligação.

    Tenha em atenção que não pode criar mais do que um acionador para o mesmo nome DNS.

  • NETWORK_ATTACHMENT_ID: identificador exclusivo do recurso de anexo de rede. O identificador é gerado depois de criar uma associação de rede. Para mais informações, consulte o artigo Crie anexos de rede.

    As associações de rede permitem que as redes VPC do produtor de serviços iniciem ligações às redes VPC do consumidor. O Eventarc usa a associação de rede para estabelecer uma ligação ao ponto final HTTP interno alojado na rede VPC do consumidor e publicar eventos.

    Quando cria uma associação de rede, pode autorizar explicitamente uma ligação através de listas de aceitação e rejeição do produtor. Independentemente disso, o Eventarc pode atualizar a lista de aceitação de uma associação de rede com o ID do projeto adequado e sem qualquer intervenção da sua parte.

  • EVENT_FILTER_TYPE: o tipo de evento suportado pelo fornecedor.

  • CHANNEL_NAME: um nome para o canal. Para mais informações, consulte Crie um canal e obtenha os respetivos detalhes.

  • PROJECT_ID: o ID do Google Cloud projeto.

  • SERVICE_ACCOUNT_NAME: o nome da sua conta de serviço gerida pelo utilizador.

Notas:

  • A flag --event-filters="type=EVENT_FILTER_TYPE" é obrigatória. Se não estiver definido nenhum outro filtro de eventos, os eventos de todos os recursos são correspondentes.
  • EVENT_FILTER_TYPE não pode ser alterado após a criação. Para alterar EVENT_FILTER_TYPE, crie um novo acionador e elimine o anterior.
  • Cada acionador pode ter vários filtros de eventos, separados por vírgulas numa flag --event-filters=[ATTRIBUTE=VALUE,...] ou pode repetir a flag para adicionar mais filtros. Apenas os eventos que correspondem a todos os filtros são enviados para o destino. Os carateres universais e as expressões regulares não são suportados.
  • A flag --service-account é usada para especificar o email 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

Crie uma lista de um acionador

Pode confirmar a criação de um acionador listando os acionadores do Eventarc através da CLI do Google Cloud ou da Google Cloud consola.

Consola

  1. Na Google Cloud consola, aceda à página Triggers do Eventarc.

    Aceda a Acionadores

    Esta página lista os seus acionadores em todas as localizações e inclui detalhes como nomes, regiões, fornecedores de eventos, destinos e muito mais.

  2. Para filtrar os acionadores:

    1. Clique em Filtro ou no campo Acionadores de filtro.
    2. Na lista Propriedades, selecione uma opção para filtrar os acionadores.

    Pode selecionar uma única propriedade ou usar o operador lógico OR para adicionar mais propriedades.

  3. Para ordenar os acionadores, junto ao título de qualquer coluna suportada, clique em Ordenar.

gcloud

Execute o seguinte comando para listar os seus acionadores:

gcloud eventarc triggers list --location=-

Este comando lista os seus acionadores em todas as localizações e inclui detalhes como nomes, tipos, destinos e estados.

O que se segue?