Gestionar activadores

Puedes gestionar los activadores mediante la Google Cloud consola o la CLI de Google Cloud en tu terminal o en Cloud Shell. También puedes gestionar los activadores a través de la API de Eventarc.

Mostrar activadores

Puedes enumerar, filtrar y ordenar tus activadores en todas las ubicaciones.

Consola

  1. En la Google Cloud consola, ve a la página Triggers (Activadores) de Eventarc.

    Ir a Activadores

    En esta lista se muestran todos los activadores de tu proyecto en todas las ubicaciones, así como detalles como el nombre del activador, la región, el proveedor de eventos, el destino y el tipo de evento.

  2. Para filtrar los activadores por una propiedad específica, siga estos pasos:

    1. Haz clic en el cuadro Filtrar.
    2. En la lista Propiedades, selecciona una opción para filtrar los activadores (por ejemplo, Nombre o Canal de eventos).

    Puede seleccionar una sola propiedad o usar el operador lógico OR para añadir más propiedades por las que filtrar.

  3. Para ordenar los activadores, haz clic en Ordenar junto al encabezado de columna correspondiente.

    Solo se pueden ordenar algunas columnas, como Nombre, Región o Canal de eventos.

gcloud

gcloud eventarc triggers list --location=-

Este comando muestra el nombre, el tipo, el destino y el estado del activador en todas las ubicaciones.

REST

Para enumerar los activadores de un proyecto y una ubicación concretos, usa el método projects.locations.triggers.list.

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • PROJECT_ID: tu ID de proyecto Google Cloud.
  • LOCATION: la región en la que se crean los activadores. Por ejemplo, us-central1.

Para enviar tu solicitud, despliega una de estas opciones:

Si la salida del comando es correcta, en el cuerpo de la respuesta se incluirán instancias de Trigger y la respuesta debería ser similar a la siguiente:

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

Describir un activador

Puedes describir un activador en una ubicación específica.

Consola

  1. En la Google Cloud consola, ve a la página Triggers (Activadores) de Eventarc.

    Ir a Activadores

  2. En la lista de activadores, haz clic en el activador del que quieras obtener información.

En la página Detalles del activador se muestran los detalles del activador, como el nombre, la región, el proveedor de eventos, el tipo de evento, el tipo de contenido de los datos del evento y el destino.

gcloud

gcloud eventarc triggers describe TRIGGER \
    --location=LOCATION

Haz los cambios siguientes:

  • TRIGGER: el ID del activador o un identificador completo.
  • LOCATION: la ubicación del activador de Eventarc.

Este comando devuelve información sobre el activador similar a la siguiente:

  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 describir un activador en un proyecto y una ubicación determinados, usa el método projects.locations.triggers.get.

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • TRIGGER_NAME: el nombre del activador que quieras describir.
  • PROJECT_ID: tu ID de proyecto Google Cloud.
  • LOCATION: la región en la que se crea el activador. Por ejemplo, us-central1.

Para enviar tu solicitud, despliega una de estas opciones:

Si la solicitud se hace correctamente, el cuerpo de la respuesta contiene una instancia de Trigger similar a la siguiente:

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

Si la condición del activador indica que hay un problema con el tema de Pub/Sub, consulta El activador no envía eventos.

Actualizar un activador

Puedes actualizar un activador para los destinos de Cloud Run, Google Kubernetes Engine (GKE) y Workflows. En función del destino, se pueden actualizar campos específicos.

Consola

  1. En la Google Cloud consola, ve a la página Triggers (Activadores) de Eventarc.

    Ir a Activadores

  2. En la lista de activadores, haz clic en el activador del que quieras obtener información.

  3. En la página Detalles del activador, haz clic en Editar.

  4. Edite los campos según sea necesario y haga clic en Guardar.

    Tenga en cuenta que no puede actualizar ningún campo no disponible, como Proveedor de eventos y Destino de eventos. Para obtener más información sobre los campos, consulta las instrucciones de la consola para un proveedor, un tipo de evento y un 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"

Haz los cambios siguientes:

  • TRIGGER: el ID del activador o un identificador completo.
  • LOCATION: la ubicación del activador de Eventarc.

Puede actualizar cualquiera de los siguientes elementos:

  • NEW_EVENT_FILTERS: el filtro que se usa para configurar el enrutamiento de eventos del activador. Por ejemplo, methodName=storage.objects.create se puede actualizar a methodName=storage.objects.delete. Ten en cuenta que, una vez creado un activador, no se puede cambiar el filtro de eventos type. Si quieres usar otro tipo de evento, debes crear un nuevo activador.
  • NEW_SERVICE_ACCOUNT: la dirección de correo de la cuenta de servicio de gestión de identidades y accesos (IAM) asociada al activador.
  • NEW_REGION: la región en la que se encuentra el servicio de Cloud Run de destino.
  • NEW_SERVICE: el nombre del servicio de Cloud Run que recibe los eventos del activador.
  • NEW_PATH: ruta relativa del servicio de Cloud Run de destino al que se deben enviar los eventos del activador.
  • NEW_EVENT_DATA_TYPE: la codificación de la carga útil del evento. En función del proveedor del evento, puede ser application/json o application/protobuf.

Por ejemplo, para actualizar la cuenta de servicio de un activador, sigue estos pasos:

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

Este comando actualiza la cuenta de servicio de un activador llamado my-cloud-run-trigger a new-serviceaccount@PROJECT_ID.iam.gserviceaccount.com.

GKE

Ten en cuenta que esta sección también se aplica a los endpoints públicos de los servicios privados y públicos que se ejecutan en un clúster de 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"

Haz los cambios siguientes:

  • TRIGGER: el ID del activador o un identificador completo.
  • LOCATION: la ubicación del activador de Eventarc.

Puede actualizar cualquiera de los siguientes elementos:

  • NEW_NAMESPACE: el espacio de nombres en el que se ejecuta el servicio de GKE de destino.
  • NEW_SERVICE: el nombre del servicio de GKE que recibe los eventos del activador.
  • NEW_PATH: la ruta relativa del servicio de GKE de destino al que se deben enviar los eventos del activador.
  • NEW_EVENT_DATA_TYPE: la codificación de la carga útil del evento. En función del proveedor del evento, puede ser application/json o application/protobuf.

Por ejemplo, para actualizar el servicio de receptor de eventos de un activador, sigue estos pasos:

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

Este comando actualiza el servicio receptor de eventos de un activador llamado my-gke-trigger a un servicio de GKE llamado helloworld-events.

Flujos de trabajo

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"

Haz los cambios siguientes:

  • TRIGGER: el ID del activador o un identificador completo.
  • LOCATION: la ubicación del activador de Eventarc.

Puede actualizar cualquiera de los siguientes elementos:

  • NEW_EVENT_FILTERS: el filtro que se usa para configurar el enrutamiento de eventos del activador. Por ejemplo, methodName=storage.objects.create se puede actualizar a methodName=storage.objects.delete. Ten en cuenta que, una vez que se ha creado un activador, no se puede cambiar el filtro de eventos type. Si quieres usar otro tipo de evento, debes crear un nuevo activador.
  • NEW_SERVICE_ACCOUNT: la dirección de correo de la cuenta de servicio de gestión de identidades y accesos (IAM) asociada al activador.
  • NEW_DESTINATION_WORKFLOW: el ID del flujo de trabajo implementado que recibe los eventos del activador.
  • NEW_DESTINATION_WORKFLOW_LOCATION: la ubicación en la que se implementa el flujo de trabajo de destino.
  • NEW_EVENT_DATA_TYPE: la codificación de la carga útil del evento. En función del proveedor del evento, puede ser application/json o application/protobuf.

Por ejemplo, para actualizar la cuenta de servicio de un activador, sigue estos pasos:

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

Este comando actualiza la cuenta de servicio de un activador llamado my-workflows-trigger a new-serviceaccount@PROJECT_ID.iam.gserviceaccount.com.

REST

Para actualizar un activador, usa el método projects.locations.triggers.patch y, opcionalmente, el parámetro de consulta updateMask para especificar una lista de campos que se van a actualizar.

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • TRIGGER_NAME: el nombre del activador que quieras actualizar.
  • PROJECT_ID: tu ID de proyecto Google Cloud.
  • LOCATION: la región en la que se crea el activador. Por ejemplo, us-central1.
  • SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com: opcional. La dirección de correo de la cuenta de servicio de Gestión de Identidades y Accesos (IAM) asociada al activador.
  • DESTINATION: opcional. Especifica el destino al que se debe enviar el evento y contiene una instancia de Destination. Por ejemplo:

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

    o

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

  • EVENT_FILTER: opcional. Atributos de evento por los que filtrar. Solo se admite la actualización del tipo de método de los activadores de registros de auditoría de Cloud. Por ejemplo:

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

    Ten en cuenta que no puedes actualizar los tipos de método de los destinos de GKE.

  • CONTENT_TYPE: opcional. La codificación de la carga útil del evento. En función del proveedor del evento, puede ser application/json o application/protobuf.
  • UPDATE_FIELDS: opcional. Lista de campos separados por comas que se van a actualizar. Si no se proporciona, se actualizan todos los campos proporcionados en la solicitud. Por ejemplo: serviceAccount,destination

Cuerpo JSON de la solicitud:

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

Para enviar tu solicitud, despliega una de estas opciones:

Si la solicitud se completa correctamente, en el cuerpo de la respuesta se incluye una instancia recién creada 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
}

Si el valor de "done" es false, la operación sigue en curso.

Eliminar un activador

Puedes eliminar un activador.

Consola

  1. En la Google Cloud consola, ve a la página Triggers (Activadores) de Eventarc.

    Ir a Activadores

  2. Selecciona el activador y haz clic en Eliminar.

gcloud

gcloud eventarc triggers delete TRIGGER

Sustituye TRIGGER por el ID del activador o por un identificador completo.

REST

Para eliminar un activador con un nombre específico, usa el método projects.locations.triggers.delete.

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • PROJECT_ID: tu ID de proyecto Google Cloud.
  • LOCATION: la región en la que se crea el activador. Por ejemplo, us-central1.
  • TRIGGER_NAME: el nombre del activador que quieras eliminar.

Para enviar tu solicitud, despliega una de estas opciones:

Si la salida del comando es correcta, en el cuerpo de la respuesta se incluirá una instancia 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
}

Si el valor de "done" es false, la operación sigue en curso.

Siguientes pasos