Crea un activador

Un activador de Eventarc declara tu interés en un evento o conjunto de eventos determinado. Si deseas configurar el enrutamiento del evento, especifica filtros para el activador, incluidas la fuente del evento y el servicio de destino de Cloud Run.

Las solicitudes al servicio se activan mediante mensajes publicados en un tema de Pub/Sub o cuando se crea un registro de auditoría que coincide con los criterios de filtro del activador.

Puedes crear activadores con la herramienta de línea de comandos de gcloud o Google Cloud Console.

Crea un activador mediante gcloud

Puedes crear un activador si ejecutas un comando gcloud junto con marcas opcionales y obligatorias.

Nuevo tema Pub/Sub

gcloud eventarc triggers create TRIGGER \
    --location=LOCATION \
    --destination-run-service=DESTINATION_RUN_SERVICE \
    --destination-run-region=DESTINATION_RUN_REGION \
    --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished"

Reemplaza lo siguiente:

  • TRIGGER es el ID del activador o un identificador completamente calificado.
  • LOCATION es la ubicación del activador de Eventarc. Para evitar cualquier problema de rendimiento y residencia de datos que genere un activador global, debe coincidir con la ubicación del servicio de Google Cloud que genera eventos. De forma alternativa, puedes establecer la propiedad eventarc/location, por ejemplo gcloud config set eventarc/location us-central1. Para obtener más información, consulta Ubicaciones de Eventarc.
  • DESTINATION_RUN_SERVICE es el nombre del servicio de Cloud Run que recibe los eventos del activador. El servicio debe estar en la misma región que el activador, a menos que su ubicación sea global. El servicio debe estar en el mismo proyecto que el activador y recibirá eventos como solicitudes HTTP POST enviadas a su ruta de URL raíz (/), cada vez que se genere el evento.
  • DESTINATION_RUN_REGION es la región en la que se puede encontrar el servicio de destino de Cloud Run. Si no se especifica, se supone que el servicio está en la misma región que el activador.

Notas:

  • La marca --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" es obligatoria.
  • Cada activador puede tener varios filtros de eventos, separados por comas en una --event-filters=[ATTRIBUTE=VALUE,…], o puedes repetir la marca para agregar más filtros. Solo los eventos que coinciden con todos los filtros se envían al destino. No se admiten comodines ni expresiones regulares.
  • De manera opcional, puedes especificar una ruta de acceso relativa en el servicio de Cloud Run de destino al que se deben enviar los eventos del activador mediante la marca --destination-run-path.
  • De forma predeterminada, las suscripciones de Pub/Sub que se crean para Eventarc se mantienen sin importar la actividad y no vencen. Para cambiar la duración de la inactividad, consulta Administra suscripciones.

Ejemplo:

  gcloud eventarc triggers create pubsub-trigger-new \
      --location=us-central1 \
      --destination-run-service=helloworld-events-pubsub \
      --destination-run-region=us-central1 \
      --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished"

Esto crea un nuevo tema de Pub/Sub y un activador llamado pubsub-trigger-new para este.

Tema de Pub/Sub existente

gcloud eventarc triggers create TRIGGER \
    --location=LOCATION \
    --destination-run-service=DESTINATION_RUN_SERVICE \
    --destination-run-region=DESTINATION_RUN_REGION \
    --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" \
    --transport-topic=projects/PROJECT_ID/topics/TOPIC_NAME

Reemplaza lo siguiente:

  • TRIGGER es el ID del activador o un identificador completamente calificado.
  • LOCATION es la ubicación del activador de Eventarc. Para evitar cualquier problema de rendimiento y residencia de datos que genere un activador global, debe coincidir con la ubicación del servicio de Google Cloud que genera eventos. De forma alternativa, puedes establecer la propiedad eventarc/location, por ejemplo gcloud config set eventarc/location us-central1. Para obtener más información, consulta Ubicaciones de Eventarc.
  • DESTINATION_RUN_SERVICE es el nombre del servicio de Cloud Run que recibe los eventos del activador. El servicio debe estar en la misma región que el activador, a menos que su ubicación sea global. El servicio debe estar en el mismo proyecto que el activador y recibirá eventos como solicitudes HTTP POST enviadas a su ruta de URL raíz (/), cada vez que se genere el evento.
  • DESTINATION_RUN_REGION es la región en la que se puede encontrar el servicio de destino de Cloud Run. Si no se especifica, se supone que el servicio está en la misma región que el activador.
  • PROJECT_ID es tu ID del proyecto de Cloud.
  • TOPIC_NAME es el nombre del tema de Pub/Sub existente. El tema debe estar en el mismo proyecto que el activador.

Notas:

  • La marca --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" es obligatoria.
  • Cada activador puede tener varios filtros de eventos, separados por comas en una --event-filters=[ATTRIBUTE=VALUE,…], o puedes repetir la marca para agregar más filtros. Solo los eventos que coinciden con todos los filtros se envían al destino. No se admiten comodines ni expresiones regulares.
  • La marca --transport-topic se usa para especificar el ID del tema existente de Pub/Sub o su identificador completamente calificado.
  • De manera opcional, puedes especificar una ruta de acceso relativa en el servicio de Cloud Run de destino al que se deben enviar los eventos del activador mediante la marca --destination-run-path.
  • De forma predeterminada, las suscripciones de Pub/Sub que se crean para Eventarc se mantienen sin importar la actividad y no vencen. Para cambiar la duración de la inactividad, consulta Administra suscripciones.

Ejemplo:

  gcloud eventarc triggers create pubsub-trigger-existing \
      --location=us-central1 \
      --destination-run-service=helloworld-events-pubsub \
      --destination-run-region=us-central1 \
      --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" \
      --transport-topic=projects/${PROJECT_ID}/topics/${TOPIC_NAME}

Esto crea un activador llamado pubsub-trigger-existing para el tema de Pub/Sub identificado por projects/${PROJECT_ID}/topics/${TOPIC_NAME}.

Registros de auditoría de Cloud

gcloud eventarc triggers create TRIGGER \
    --location=LOCATION \
    --destination-run-service=DESTINATION_RUN_SERVICE \
    --destination-run-region=DESTINATION_RUN_REGION \
    --event-filters="type=google.cloud.audit.log.v1.written" \
    --event-filters="serviceName=SERVICE_NAME" \
    --event-filters="methodName=METHOD_NAME" \
    --service-account=PROJECT_NUMBER-compute@developer.gserviceaccount.com

Reemplaza lo siguiente:

  • TRIGGER es el ID del activador o un identificador completamente calificado.
  • LOCATION es la ubicación del activador de Eventarc. Para evitar cualquier problema de rendimiento y residencia de datos que genere un activador global, debe coincidir con la ubicación del servicio de Google Cloud que genera eventos. De forma alternativa, puedes establecer la propiedad eventarc/location, por ejemplo gcloud config set eventarc/location us-central1. Para obtener más información, consulta Ubicaciones de Eventarc.
  • DESTINATION_RUN_SERVICE es el nombre del servicio de Cloud Run que recibe los eventos del activador. El servicio debe estar en la misma región que el activador, a menos que su ubicación sea global. El servicio debe estar en el mismo proyecto que el activador y recibirá eventos como solicitudes HTTP POST enviadas a su ruta de URL raíz (/), cada vez que se genere el evento.
  • DESTINATION_RUN_REGION es la región en la que se puede encontrar el servicio de destino de Cloud Run. Si no se especifica, se supone que el servicio está en la misma región que el activador.
  • SERVICE_NAME es el identificador del servicio de Google Cloud.
  • METHOD_NAME es el identificador de la operación.
  • PROJECT_NUMBER es el número de proyecto de Google Cloud.

Notas:

  • Estas marcas son obligatorias:
    • --event-filters="type=google.cloud.audit.log.v1.written"
    • --event-filters="serviceName=VALUE"
    • --event-filters="methodName=VALUE"
  • Para obtener una lista de los eventos de registro de auditoría compatibles con Eventarc, incluidos los valores serviceName y methodName, consulta Eventos compatibles con Eventarc.
  • Cada activador puede tener varios filtros de eventos, separados por comas en una --event-filters=[ATTRIBUTE=VALUE,…], o puedes repetir la marca para agregar más filtros. Solo los eventos que coinciden con todos los filtros se envían al destino. No se admiten comodines ni expresiones regulares. Consulta Determina filtros de eventos para los registros de auditoría de Cloud.
  • La marca --service-account se usa para especificar el correo electrónico de la cuenta de servicio de administración de identidades y accesos (IAM) asociado con el activador.
  • De manera opcional, puedes filtrar eventos para un recurso específico mediante la marca --event-filters="resourceName=VALUE" y la especificación de la ruta completa al recurso. Omite la marca para los recursos creados de forma dinámica que tienen identificadores generados en el momento de la creación.
  • De manera opcional, puedes especificar una ruta de acceso relativa en el servicio de Cloud Run de destino al que se deben enviar los eventos del activador mediante la marca --destination-run-path.

Ejemplo:

  gcloud eventarc triggers create helloworld-trigger \
      --location=us-central1 \
      --destination-run-service=helloworld-events \
      --destination-run-region=us-central1 \
      --event-filters="type=google.cloud.audit.log.v1.written" \
      --event-filters="serviceName=storage.googleapis.com" \
      --event-filters="methodName=storage.buckets.update" \
      --event-filters="resourceName=projects/_/buckets/eventarc-bucket/objects/random.txt" \
      --service-account=${PROJECT_NUMBER}-compute@developer.gserviceaccount.com

Esto crea un activador llamado helloworld-trigger para los registros de auditoría que escribe storage.googleapis.com y para la operación identificada como storage.buckets.update.

Crea un activador a través de la consola

Puedes usar Cloud Console para crear activadores con filtros.

  1. En Cloud Console, ve a Cloud Run.

    Ir a Cloud Run

  2. En la lista de servicios, haz clic en uno.

  3. Haz clic en la pestaña Activadores y, luego, en Agregar activador

  4. En la lista desplegable Elegir un evento, puedes encontrar todos los servicios y los eventos compatibles:

    Agrega un activador a través de la consola

  5. Después de seleccionar un servicio, puedes elegir un evento.

    Por ejemplo, selecciona Cloud Storage > storage.objects.create.

    Debes identificar qué evento filtrar. Consulta Determina filtros de eventos para los registros de auditoría de Cloud.

  6. Si seleccionas el evento Tema de Cloud Pub/Sub, puedes seleccionar un tema existente o crear uno nuevo para el activador.

    De forma predeterminada, las suscripciones de Pub/Sub que se crean para Eventarc se mantienen sin importar la actividad y no vencen. Para cambiar la duración de la inactividad, consulta Administra suscripciones.
  7. Para todos los demás eventos, en el campo Nombre completo del recurso, puedes especificar la ruta completa al recurso.

    Por ejemplo, escribe projects/_/buckets/eventarc-bucket/objects/random.txt.

    Deja el campo en blanco para los recursos creados de forma dinámica que tienen identificadores generados en el momento de la creación.

  8. Elige una ubicación para recibir eventos.

  9. Configura a qué cuenta de servicio se invoca el servicio de Cloud Run y especifica la ruta de URL de servicio a la que se enviará la solicitud entrante.

    En los destinos de Cloud Run, esta cuenta de servicio se usa para generar tokens de identidad cuando se invoca el servicio.

  10. Después de crear el activador, puedes verificar su estado asegurándote de que haya una marca de verificación en la pestaña Activadores.

¿Qué sigue?