Faça a gestão dos acionadores

Pode gerir os acionadores através da Google Cloud consola ou da Google Cloud CLI no seu terminal ou no Cloud Shell. Também pode gerir acionadores através da API Eventarc.

Liste os acionadores

Pode listar, filtrar e ordenar os seus acionadores em todas as localizações.

Consola

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

    Aceda a Acionadores

    Esta página apresenta todos os acionadores no seu projeto para todas as localizações e inclui detalhes como o nome do acionador, a região, o fornecedor de eventos, o destino e o tipo de evento.

  2. Para filtrar os acionadores por uma propriedade específica:

    1. Clique na caixa Filtrar.
    2. Na lista de Propriedades, selecione uma opção para filtrar os acionadores por, por exemplo, Nome ou Canal do evento.

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

  3. Para ordenar os acionadores, clique em Ordenar junto ao cabeçalho da coluna adequado.

    Apenas algumas colunas são ordenáveis, por exemplo, Nome, Região ou Canal do evento.

gcloud

gcloud eventarc triggers list --location=-

Este comando lista o nome, o tipo, o destino e o estado do acionador em todas as localizações.

REST

Para listar acionadores num determinado projeto e localização, use o método projects.locations.triggers.list.

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

  • PROJECT_ID: o ID do seu Google Cloud projeto.
  • LOCATION: a região na qual os acionadores são criados. Por exemplo, us-central1.

Para enviar o seu pedido, expanda uma destas opções:

Se for bem-sucedido, o corpo da resposta contém instâncias de Trigger e a resposta deve ser semelhante à seguinte:

{
  "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
  ]
}

Descreva um acionador

Pode descrever um acionador numa localização específica.

Consola

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

    Aceda a Acionadores

  2. Na lista de acionadores, clique no acionador cujos detalhes quer saber.

A página Detalhes do acionador apresenta os detalhes do acionador, como o nome, a região, o fornecedor de eventos, o tipo de evento, o tipo de conteúdo dos dados do evento e o destino.

gcloud

gcloud eventarc triggers describe TRIGGER \
    --location=LOCATION

Substitua o seguinte:

  • TRIGGER: o ID do acionador ou um identificador totalmente qualificado.
  • LOCATION: a localização do acionador do Eventarc.

Este comando devolve informações sobre o acionador semelhantes às 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: [email protected]
  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 acionador num determinado projeto e localização, use o método projects.locations.triggers.get.

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

  • TRIGGER_NAME: o nome do acionador que quer descrever.
  • PROJECT_ID: o ID do seu Google Cloud projeto.
  • LOCATION: a região na qual o acionador é criado, por exemplo, us-central1.

Para enviar o seu pedido, expanda uma destas opções:

Se for bem-sucedido, o corpo da resposta contém uma instância de Trigger semelhante à seguinte:

{
  "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 acionador indicar um problema com o tópico do Pub/Sub, consulte o artigo O acionador não está a enviar eventos.

Atualize um acionador

Pode atualizar um acionador para destinos do Cloud Run, Google Kubernetes Engine (GKE) e Workflows. Consoante o destino, é possível atualizar campos específicos.

Consola

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

    Aceda a Acionadores

  2. Na lista de acionadores, clique no acionador cujos detalhes quer saber.

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

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

    Tenha em atenção que não pode atualizar nenhum campo indisponível, como o Fornecedor de eventos e o Destino do evento. Para mais informações sobre os campos, consulte as instruções da consola para um fornecedor, um tipo de evento e um destino 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 o seguinte:

  • TRIGGER: o ID do acionador ou um identificador totalmente qualificado.
  • LOCATION: a localização do acionador do Eventarc.

Pode atualizar qualquer um dos seguintes elementos:

  • NEW_EVENT_FILTERS: o filtro usado para configurar o encaminhamento de eventos do acionador; por exemplo, methodName=storage.objects.create pode ser atualizado para methodName=storage.objects.delete. Tenha em atenção que, depois de criar um acionador, não é possível alterar o filtro de eventos type. Para um tipo de evento diferente, tem de criar um novo acionador.
  • NEW_SERVICE_ACCOUNT: o email da conta de serviço do Identity and Access Management (IAM) associado ao acionador.
  • NEW_REGION: a região na qual o serviço do Cloud Run de destino pode ser encontrado.
  • NEW_SERVICE: o nome do serviço do Cloud Run que recebe os eventos para o acionador.
  • NEW_PATH: o caminho relativo no serviço de execução na nuvem de destino para o qual os eventos do acionador devem ser enviados.
  • NEW_EVENT_DATA_TYPE: a codificação da carga útil do evento. Consoante o fornecedor de eventos, pode ser application/json ou application/protobuf.

Por exemplo, para atualizar a conta de serviço de um acionador:

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

Este comando atualiza a conta de serviço de um acionador denominado my-cloud-run-trigger para new-serviceaccount@PROJECT_ID.iam.gserviceaccount.com.

GKE

Tenha em atenção que esta secção também se aplica aos pontos finais públicos de serviços privados e públicos executados num 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 o seguinte:

  • TRIGGER: o ID do acionador ou um identificador totalmente qualificado.
  • LOCATION: a localização do acionador do Eventarc.

Pode atualizar qualquer um dos seguintes elementos:

  • NEW_NAMESPACE: o namespace no qual o serviço GKE de destino está em execução.
  • NEW_SERVICE: o nome do serviço GKE que recebe os eventos para o acionador.
  • NEW_PATH: o caminho relativo no serviço GKE de destino para o qual os eventos do acionador devem ser enviados.
  • NEW_EVENT_DATA_TYPE: a codificação da carga útil do evento. Consoante o fornecedor de eventos, pode ser application/json ou application/protobuf.

Por exemplo, para atualizar o serviço de receção de eventos de um acionador:

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

Este comando atualiza o serviço de receção de eventos para um acionador denominado my-gke-trigger para um serviço GKE denominado helloworld-events.

Workflows

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 o seguinte:

  • TRIGGER: o ID do acionador ou um identificador totalmente qualificado.
  • LOCATION: a localização do acionador do Eventarc.

Pode atualizar qualquer um dos seguintes elementos:

  • NEW_EVENT_FILTERS: o filtro usado para configurar o encaminhamento de eventos do acionador; por exemplo, methodName=storage.objects.create pode ser atualizado para methodName=storage.objects.delete. Tenha em atenção que, depois de criar um acionador, não é possível alterar o filtro de eventos type. Para um tipo de evento diferente, tem de criar um novo acionador.
  • NEW_SERVICE_ACCOUNT: o email da conta de serviço do Identity and Access Management (IAM) associado ao acionador.
  • NEW_DESTINATION_WORKFLOW: o ID do fluxo de trabalho implementado que recebe os eventos do acionador.
  • NEW_DESTINATION_WORKFLOW_LOCATION: a localização em que o fluxo de trabalho de destino está implementado.
  • NEW_EVENT_DATA_TYPE: a codificação da carga útil do evento. Consoante o fornecedor de eventos, pode ser application/json ou application/protobuf.

Por exemplo, para atualizar a conta de serviço de um acionador:

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

Este comando atualiza a conta de serviço de um acionador denominado my-workflows-trigger para new-serviceaccount@PROJECT_ID.iam.gserviceaccount.com.

REST

Para atualizar um acionador existente, use o método projects.locations.triggers.patch e, opcionalmente, use o parâmetro de consulta updateMask para especificar uma lista de campos a serem atualizados.

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

  • TRIGGER_NAME: o nome do acionador que quer atualizar.
  • PROJECT_ID: o ID do seu Google Cloud projeto.
  • LOCATION: a região na qual o acionador é criado, por exemplo, us-central1.
  • SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com: opcional. O email da conta de serviço de gestão de identidade e de acesso (IAM) associado ao acionador.
  • DESTINATION: opcional. Especifica o destino para onde o evento deve ser enviado e contém uma instância de Destination. Por 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 de eventos a filtrar. Apenas é suportada a atualização do tipo de método para acionadores dos registos de auditoria da nuvem. Por exemplo:

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

    Tenha em atenção que não pode atualizar os tipos de métodos para destinos do GKE.

  • CONTENT_TYPE: opcional. A codificação do payload do evento. Consoante o fornecedor de eventos, pode ser application/json ou application/protobuf.
  • UPDATE_FIELDS: opcional. Uma lista separada por vírgulas de campos a atualizar. Se não for fornecido, todos os campos fornecidos no pedido são atualizados. Por exemplo: serviceAccount,destination

Corpo JSON do pedido:

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

Para enviar o seu pedido, expanda uma destas opções:

Se for bem-sucedido, o corpo da resposta contém uma instância recém-criada 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 está em curso.

Elimine um acionador

Pode eliminar um acionador.

Consola

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

    Aceda a Acionadores

  2. Selecione o acionador e clique em Eliminar.

gcloud

gcloud eventarc triggers delete TRIGGER

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

REST

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

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

  • PROJECT_ID: o ID do seu Google Cloud projeto.
  • LOCATION: a região na qual o acionador é criado, por exemplo, us-central1.
  • TRIGGER_NAME: o nome do acionador que quer eliminar.

Para enviar o seu pedido, expanda uma destas opções:

Se for bem-sucedido, o corpo da resposta contém 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 está em curso.

O que se segue?