Gerenciar gatilhos

É possível gerenciar gatilhos usando o console do Google Cloud ou a CLI do Google Cloud no seu terminal ou no Cloud Shell. Também é possível gerenciar gatilhos pela API Eventarc.

Listar gatilhos

É possível listar, filtrar e classificar os acionadores em todos os locais.

Console

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

    Acessar "Gatilhos"

    Essa página lista todos os gatilhos no projeto para todos os locais e inclui detalhes como o nome do gatilho, a região, o provedor de eventos, o destino e o tipo de evento.

  2. Para filtrar gatilhos de acordo com uma propriedade específica:

    1. Clique na caixa Filtro .
    2. Na lista de Propriedades, selecione uma opção para filtrar os gatilhos, por exemplo, Nome ou Canal de eventos.

    É possível selecionar uma única propriedade para a filtragem ou usar o operador lógico OR a fim de adicionar várias.

  3. Para classificar os gatilhos, clique em Classificar ao lado do título da coluna apropriada.

    Apenas algumas colunas são classificáveis, por exemplo, Nome, Região ou Canal de eventos.

gcloud

gcloud eventarc triggers list --location=-

Esse comando lista o nome, o tipo, o destino e o status do gatilho em todos os locais.

REST

Para listar gatilhos em um determinado projeto e local, use o método projects.locations.triggers.list.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_ID: o ID do projeto do Google Cloud.
  • LOCATION: a região em que os gatilhos são criados, por exemplo, us-central1.

Para enviar a solicitação, expanda uma destas opções:

Se bem-sucedido, o corpo da resposta conterá instâncias de Trigger e a resposta será semelhante a esta:

{
  "triggers": [
    {
      "name": "projects/PROJECT_ID/locations/LOCATION/triggers/TRIGGER_NAME",
      "uid": "d700773a-698b-47b2-a712-2ee10b690062",
      "createTime": "2022-12-06T22:44:04.744001514Z",
      "updateTime": "2022-12-06T22:44:09.116459550Z",
      "eventFilters": [
        {
          "attribute": "type",
          "value": "google.cloud.pubsub.topic.v1.messagePublished"
        }
      ],
      "serviceAccount": "SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com",
      "destination": {
        "workflow": "projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_NAME"
      },
      "transport": {
        "pubsub": {
          "topic": "projects/PROJECT_ID/topics/TOPIC_ID",
          "subscription": "projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID"
        }
      }
    },
    {
      object (Trigger)
    }
  ],
  "nextPageToken": string,
  "unreachable": [
    string
  ]
}

Descrever um gatilho

Descreva um acionador em um local específico.

Console

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

    Acessar "Gatilhos"

  2. Na lista de gatilhos, clique naqueles sobre os quais você quer mais detalhes.

A página Detalhes do gatilho mostra as informações de um gatilho, como nome, região, provedor de eventos, tipo de evento, dados do evento, tipo de conteúdo e destino.

gcloud

gcloud eventarc triggers describe TRIGGER \
    --location=LOCATION

Substitua:

  • TRIGGER: o ID do gatilho ou um identificador totalmente qualificado.
  • LOCATION: o local do gatilho do Eventarc.

Esse comando retorna informações sobre o gatilho, como as seguintes:

  createTime: '2023-03-16T13:40:44.889670204Z'
  destination:
    cloudRun:
      path: /
      region: us-central1
      service: hello
  eventDataContentType: application/protobuf
  eventFilters:
  - attribute: serviceName
    value: cloudscheduler.googleapis.com
  - attribute: methodName
    value: google.cloud.scheduler.v1.CloudScheduler.DeleteJob
  - attribute: type
    value: google.cloud.audit.log.v1.written
  name: projects/project-name/locations/us-central1/triggers/name-of-trigger
  serviceAccount: project-number-compute@developer.gserviceaccount.com
  transport:
    pubsub:
      subscription: projects/project-name/subscriptions/eventarc-us-central1-name-of-trigger-sub-034
      topic: projects/project-name/topics/eventarc-us-central1-name-of-trigger-931

REST

Para descrever um gatilho em um determinado projeto e local, use o método projects.locations.triggers.get.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • TRIGGER_NAME: o nome do gatilho que você quer descrever.
  • PROJECT_ID: o ID do projeto do Google Cloud.
  • LOCATION: a região onde o gatilho é criado, por exemplo, us-central1.

Para enviar a solicitação, expanda uma destas opções:

Se houver êxito, o corpo da resposta conterá uma instância de Trigger semelhante a esta:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/triggers/TRIGGER_NAME",
  "uid": "d700773a-698b-47b2-a712-2ee10b690062",
  "createTime": "2022-12-06T22:44:04.744001514Z",
  "updateTime": "2022-12-06T22:44:09.116459550Z",
  "eventFilters": [
    {
      "attribute": "type",
      "value": "google.cloud.pubsub.topic.v1.messagePublished"
    }
  ],
  "serviceAccount": "SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com",
  "destination": {
    "workflow": "projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_NAME"
  },
  "transport": {
    "pubsub": {
      "topic": "projects/PROJECT_ID/topics/TOPIC_ID",
      "subscription": "projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID"
    }
  }
}

Se a condição do gatilho indicar um problema com o tópico do Pub/Sub, consulte O gatilho não está entregando eventos.

Atualizar um gatilho

É possível atualizar um gatilho para destinos do Cloud Run, do Google Kubernetes Engine (GKE) e do Workflows. Dependendo do destino, campos específicos podem ser atualizados.

Console

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

    Acessar "Gatilhos"

  2. Na lista de gatilhos, clique naqueles sobre os quais você quer mais detalhes.

  3. Na página Detalhes do gatilho, clique em Editar.

  4. Edite os campos conforme necessário e clique em Salvar.

    Não é possível atualizar campos indisponíveis, como Provedor de eventos e Destino do evento. Para mais informações sobre esses campos, consulte as instruções do Console para provedores, tipos de evento e destinos específicos.

gcloud

Cloud Run

gcloud eventarc triggers update TRIGGER \
    --location=LOCATION \
    --event-filters=NEW_EVENT_FILTERS \
    --service-account=NEW_SERVICE_ACCOUNT \
    --destination-run-region=NEW_REGION \
    --destination-run-service=NEW_SERVICE \
    --destination-run-path=NEW_PATH \
    --event-data-content-type="NEW_EVENT_DATA_TYPE"

Substitua:

  • TRIGGER: o ID do gatilho ou um identificador totalmente qualificado.
  • LOCATION: o local do gatilho do Eventarc.

Você pode atualizar qualquer um dos seguintes itens:

  • NEW_EVENT_FILTERS: o filtro usado para configurar o roteamento de eventos do gatilho. Por exemplo, methodName=storage.objects.create pode ser atualizado para methodName=storage.objects.delete. Após a criação de um gatilho, o filtro de eventos type não pode ser alterado. Para um tipo de evento diferente, crie um novo gatilho.
  • NEW_SERVICE_ACCOUNT: o e-mail da conta de serviço do Identity and Access Management (IAM) associado ao gatilho.
  • NEW_REGION: a região em que o serviço de destino do Cloud Run pode ser encontrado.
  • NEW_SERVICE: o nome do serviço do Cloud Run que recebe os eventos do gatilho.
  • NEW_PATH: o caminho relativo no serviço de destino do Cloud Run para o qual os eventos do gatilho são enviados.
  • NEW_EVENT_DATA_TYPE: a codificação do payload do evento. Dependendo do provedor de eventos, pode ser application/json ou application/protobuf.

Por exemplo, para atualizar a conta de serviço com relação a um gatilho:

gcloud eventarc triggers update my-cloud-run-trigger \
    --service-account=new-serviceaccount@${PROJECT_ID}.iam.gserviceaccount.com

Esse comando atualiza a conta de serviço de um gatilho chamado my-cloud-run-trigger para new-serviceaccount@PROJECT_ID.iam.gserviceaccount.com.

GKE

Esta seção também se aplica aos endpoints públicos de serviços particulares e públicos em execução em um cluster do GKE.

gcloud eventarc triggers update TRIGGER \
    --location=LOCATION \
    --destination-gke-namespace=NEW_NAMESPACE \
    --destination-gke-service=NEW_SERVICE \
    --destination-gke-path=NEW_PATH \
    --event-data-content-type="NEW_EVENT_DATA_TYPE"

Substitua:

  • TRIGGER: o ID do gatilho ou um identificador totalmente qualificado.
  • LOCATION: o local do gatilho do Eventarc.

Você pode atualizar qualquer um dos seguintes itens:

  • NEW_NAMESPACE: o namespace em que o serviço de destino do GKE está em execução.
  • NEW_SERVICE: o nome do serviço do GKE que recebe os eventos do gatilho.
  • NEW_PATH: o caminho relativo no serviço de destino do GKE para onde os eventos do gatilho são enviados.
  • NEW_EVENT_DATA_TYPE: a codificação do payload do evento. Dependendo do provedor de eventos, pode ser application/json ou application/protobuf.

Por exemplo, para atualizar o serviço receptor de eventos de um gatilho:

gcloud eventarc triggers update my-gke-trigger \
    --destination-gke-service=helloworld-events

Esse comando atualiza o serviço receptor de eventos de um gatilho chamado my-gke-trigger para um serviço do GKE chamado helloworld-events.

Fluxos de trabalho

gcloud eventarc triggers update TRIGGER \
    --location=LOCATION \
    --event-filters=NEW_EVENT_FILTERS \
    --service-account=NEW_SERVICE_ACCOUNT \
    --destination-workflow=NEW_DESTINATION_WORKFLOW \
    --destination-workflow-location=NEW_DESTINATION_WORKFLOW_LOCATION \
    --event-data-content-type="NEW_EVENT_DATA_TYPE"

Substitua:

  • TRIGGER: o ID do gatilho ou um identificador totalmente qualificado.
  • LOCATION: o local do gatilho do Eventarc.

Você pode atualizar qualquer um dos seguintes itens:

  • NEW_EVENT_FILTERS: o filtro usado para configurar o roteamento de eventos do gatilho. Por exemplo, methodName=storage.objects.create pode ser atualizado para methodName=storage.objects.delete. Após a criação de um gatilho, o filtro de eventos type não pode ser alterado. Para um tipo de evento diferente, crie um novo gatilho.
  • NEW_SERVICE_ACCOUNT: o e-mail da conta de serviço do Identity and Access Management (IAM) associado ao gatilho.
  • NEW_DESTINATION_WORKFLOW: o ID do fluxo de trabalho implantado que recebe os eventos do gatilho.
  • NEW_DESTINATION_WORKFLOW_LOCATION: o local em que o fluxo de trabalho de destino é implantado.
  • NEW_EVENT_DATA_TYPE: a codificação do payload do evento. Dependendo do provedor de eventos, pode ser application/json ou application/protobuf.

Por exemplo, para atualizar a conta de serviço com relação a um gatilho:

gcloud eventarc triggers update my-workflows-trigger \
    --service-account=new-serviceaccount@${PROJECT_ID}.iam.gserviceaccount.com

Esse comando atualiza a conta de serviço de um gatilho chamado my-workflows-trigger para new-serviceaccount@PROJECT_ID.iam.gserviceaccount.com.

REST

Para atualizar um gatilho que já existe, use o método projects.locations.triggers.patch e, se preferir, use o parâmetro de consulta updateMask para especificar uma lista de campos a serem atualizados.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • TRIGGER_NAME: o nome do gatilho que você quer atualizar.
  • PROJECT_ID: o ID do projeto do Google Cloud.
  • LOCATION: a região onde o gatilho é criado, por exemplo, us-central1.
  • SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com: opcional. O e-mail da conta de serviço do Identity and Access Management (IAM) associado ao gatilho.
  • DESTINATION: opcional. Especifica o destino para onde o evento deve ser enviado e contém uma instância de Destination. Exemplo:

    {"destination": {"workflow": "projects/my-project/locations/us-central1/workflows/my-first-workflow"}}

    ou

    {"destination": {"cloudRun": {"service": "hello-world", "region": "us-central1"}}}

  • EVENT_FILTER: opcional. Os atributos do evento a serem filtrados. Só é possível atualizar o tipo de método para gatilhos dos Registros de auditoria do Cloud. Exemplo:

    {"eventFilters": [{"attribute": "methodName", "value": "storage.buckets.create"}, {"attribute": "type", "value": "google.cloud.audit.log.v1.written"}, {"attribute": "serviceName", "value": "storage.googleapis.com"}]}

    Não é possível atualizar tipos de método para destinos do GKE.

  • CONTENT_TYPE: opcional. A codificação do payload do evento. Dependendo do provedor de eventos, pode ser application/json ou application/protobuf.
  • UPDATE_FIELDS: opcional. Uma lista separada por vírgulas de campos a serem atualizados. Se não forem informados, todos os campos informados na solicitação serão atualizados. Por exemplo: serviceAccount,destination

Corpo JSON da solicitação:

{
  "serviceAccount": "SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com",
  "destination": DESTINATION,
  "eventFilters" EVENT_FILTER,
  "eventDataContentType": "CONTENT_TYPE"
}

Para enviar a solicitação, expanda uma destas opções:

Se houver êxito, o corpo da resposta conterá uma instância de Operation:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.eventarc.v1.OperationMetadata",
    "createTime": "2024-01-25T17:17:45.782370139Z",
    "target": "projects/PROJECT_ID/locations/LOCATION/triggers/TRIGGER_NAME",
    "verb": "update",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

Se o valor de "done" for false, a operação ainda estará em andamento.

Excluir um gatilho

É possível excluir um gatilho.

Console

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

    Acessar "Gatilhos"

  2. Selecione o gatilho e clique em Excluir.

gcloud

gcloud eventarc triggers delete TRIGGER

Substitua TRIGGER pelo ID do gatilho ou por um identificador totalmente qualificado.

REST

Para excluir um gatilho com um nome especificado, use o método projects.locations.triggers.delete.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_ID: o ID do projeto do Google Cloud.
  • LOCATION: a região onde o gatilho é criado, por exemplo, us-central1.
  • TRIGGER_NAME: o nome do gatilho que você quer excluir.

Para enviar a solicitação, expanda uma destas opções:

Se houver êxito, o corpo da resposta conterá uma instância de Operation:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.eventarc.v1.OperationMetadata",
    "createTime": "2024-01-24T17:53:52.834876290Z",
    "target": "projects/PROJECT_ID/locations/LOCATION/triggers/TRIGGER_NAME",
    "verb": "delete",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

Se o valor de "done" for false, a operação ainda estará em andamento.

A seguir