Administrar activadores

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

Enumera activadores

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

Console

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

    Ir a Activadores

    Esto enumera todos los activadores de tu proyecto para todas las ubicaciones y además incluye detalles como el nombre del activador, la región, el proveedor de eventos, el destino y el tipo de evento.

  2. Para filtrar tus activadores según una propiedad específica, haz lo siguiente:

    1. Haz clic en la casilla Filtro .
    2. En la lista de Propiedades, elige una opción para filtrar los activadores, por ejemplo, Nombre o Canal de eventos.

    Puedes elegir una sola propiedad o usar el operador lógico OR para agregar más propiedades para filtrar.

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

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

gcloud

gcloud eventarc triggers list --location=-

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

REST

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

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

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

Para enviar tu solicitud, expande una de estas opciones:

Si se ejecuta de forma correcta, el cuerpo de la respuesta contiene instancias de Trigger y la respuesta debe 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
  ]
}

Describe un activador

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

Console

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

    Ir a Activadores

  2. En la lista de activadores, haz clic en el activador cuyos detalles deseas conocer.

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

gcloud

gcloud eventarc triggers describe TRIGGER \
    --location=LOCATION

Reemplaza lo siguiente:

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

Con este comando, se muestra información sobre el activador que es similar al 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 cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

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

Para enviar tu solicitud, expande una de estas opciones:

Si se ejecuta de forma correcta, 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 un problema con el tema de Pub/Sub, consulta El activador no entrega eventos.

Actualiza un activador

Puedes actualizar un activador de Cloud Run, Google Kubernetes Engine (GKE) y destinos de Workflows. Según el destino, se pueden actualizar campos específicos.

Console

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

    Ir a Activadores

  2. En la lista de activadores, haz clic en el activador cuyos detalles deseas conocer.

  3. En la página de detalles del activador, haz clic en Cambiar.

  4. Cambia los campos según sea necesario y haz clic en Guardar.

    Ten en cuenta que no puedes actualizar ningún campo no disponible, como Proveedor de eventos, y Destino del evento. Para obtener más información sobre los campos, consulta las instrucciones de Console de un proveedor específico, un tipo de evento y un destino.

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"

Reemplaza lo siguiente:

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

Puedes actualizar cualquiera de las siguientes opciones:

  • NEW_EVENT_FILTERS: Es 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 después de crear un activador, el filtro de evento type no se puede cambiar. Para un tipo de evento diferente, debes crear un activador nuevo.
  • NEW_SERVICE_ACCOUNT: Es el correo electrónico de la cuenta de servicio de Identity and Access Management (IAM) asociado con el activador.
  • NEW_REGION: la región en la que se puede encontrar el servicio de Cloud Run de destino.
  • NEW_SERVICE: el nombre del servicio de Cloud Run que recibe los eventos para el activador.
  • NEW_PATH: la ruta de acceso relativa en el servicio de Cloud Run de destino al que se deben enviar los eventos del activador.
  • NEW_EVENT_DATA_TYPE: Es la codificación de la carga útil del evento. Según el proveedor de eventos, 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 para new-serviceaccount@PROJECT_ID.iam.gserviceaccount.com.

GKE

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

Reemplaza lo siguiente:

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

Puedes actualizar cualquiera de las siguientes opciones:

  • NEW_NAMESPACE: Es 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: Es la ruta de acceso relativa en el servicio de GKE de destino al que se deben enviar los eventos del activador.
  • NEW_EVENT_DATA_TYPE: Es la codificación de la carga útil del evento. Según el proveedor de eventos, puede ser application/json o application/protobuf.

Por ejemplo, para actualizar el servicio del receptor de eventos de un activador, haz lo siguiente:

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

Con este comando, se actualiza el servicio del receptor de eventos para un activador llamado my-gke-trigger a un servicio de GKE llamado 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"

Reemplaza lo siguiente:

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

Puedes actualizar cualquiera de las siguientes opciones:

  • NEW_EVENT_FILTERS: Es 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 después de crear un activador, el filtro de evento type no se puede cambiar. Para un tipo de evento diferente, debes crear un activador nuevo.
  • NEW_SERVICE_ACCOUNT: Es el correo electrónico de la cuenta de servicio de Identity and Access Management (IAM) asociado con el activador.
  • NEW_DESTINATION_WORKFLOW: Es el ID del flujo de trabajo implementado que recibe los eventos del activador.
  • NEW_DESTINATION_WORKFLOW_LOCATION: Es la ubicación en la que se implementa el flujo de trabajo de destino.
  • NEW_EVENT_DATA_TYPE: Es la codificación de la carga útil del evento. Según el proveedor de eventos, 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 para new-serviceaccount@PROJECT_ID.iam.gserviceaccount.com.

REST

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

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • TRIGGER_NAME: el nombre del activador que deseas actualizar.
  • PROJECT_ID: el ID del proyecto de Google Cloud.
  • LOCATION: la región en la que se crea el activador, por ejemplo, us-central1.
  • SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com: es opcional. El correo electrónico de la cuenta de servicio de Identity and Access Management (IAM) asociado con el activador.
  • DESTINATION: es 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: es opcional. Los atributos del evento que se deben filtrar. Solo se admite la actualización del tipo de método para 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étodos para los destinos de GKE.

  • CONTENT_TYPE: es opcional. La codificación de la carga útil del evento. Según el proveedor de eventos, puede ser application/json o application/protobuf.
  • UPDATE_FIELDS: es opcional. Una lista de los campos separados por comas que se deben 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, expande una de estas opciones:

Si el proceso se realiza de forma correcta, el cuerpo de la respuesta contiene 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 aún está en curso.

Borra un activador

Puedes borrar un activador.

Console

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

    Ir a Activadores

  2. Elige el activador y haz clic en Borrar.

gcloud

gcloud eventarc triggers delete TRIGGER

Reemplaza TRIGGER por el ID del activador o un identificador completamente calificado.

REST

Para borrar un activador con un nombre especificado, usa el método projects.locations.triggers.delete.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

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

Para enviar tu solicitud, expande una de estas opciones:

Si se ejecuta de forma correcta, el cuerpo de la respuesta contiene 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 aún está en curso.

¿Qué sigue?