Un activador de Eventarc declara tu interés en un evento o en un conjunto de eventos concretos. Puede configurar el enrutamiento de eventos especificando filtros para el activador, incluida la fuente del evento y el servicio de Cloud Run de destino.
Eventarc envía eventos al receptor de eventos en formato CloudEvents a través de una solicitud HTTP.
En estas instrucciones se explica cómo configurar el enrutamiento a tu servicio de Cloud Run, que se activa cuando se crea un registro de auditoría que coincide con los criterios de filtro del activador. Para ver una lista de los eventos de registro de auditoría compatibles con Eventarc, incluidos los valores de serviceName
y methodName
, consulta Tipos de eventos de Google compatibles con Eventarc.
Para obtener más información sobre cómo registrar eventos que se activan cuando se crea un registro de auditoría que coincide con los criterios de filtro del activador, consulta Determinar filtros de eventos para registros de auditoría de Cloud.
Prepararse para crear un activador
Antes de crear un activador, completa estos requisitos previos:
Consola
En la Google Cloud consola, en la página del selector de proyectos, selecciona o crea un Google Cloud proyecto.
Habilita las APIs Cloud Logging, Eventarc y Eventarc Publishing.
Si procede, habilita la API relacionada con los eventos de registros de auditoría de Cloud. Por ejemplo, para los registros de auditoría de las funciones de Cloud Run, habilita la API Cloud Functions.
Si aún no tienes una, crea una cuenta de servicio gestionada por el usuario y, a continuación, concédele los roles y permisos necesarios para que Eventarc pueda gestionar eventos de tu servicio de destino.
En la Google Cloud consola, ve a la página Crear cuenta de servicio.
Selecciona el proyecto.
En el campo Nombre de cuenta de servicio, escribe un nombre. La Google Cloud consola rellena el campo ID de cuenta de servicio con este nombre.
En el campo Descripción de la cuenta de servicio, escribe una descripción. Por ejemplo,
Service account for event trigger
.Haz clic en Crear y continuar.
Para proporcionar el acceso adecuado, en la lista Selecciona un rol, elige los roles de gestión de identidades y accesos (IAM) que quieras asignar a tu cuenta de servicio para las invocaciones autenticadas o no autenticadas. Para obtener más información, consulta Roles y permisos para destinos de Cloud Run.
Para añadir más roles, haz clic en
Añadir otro rol y añade cada rol adicional.Haz clic en Continuar.
Para terminar de crear la cuenta, haga clic en Hecho.
gcloud
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Habilita las APIs Cloud Logging, Eventarc y Eventarc Publishing.
gcloud services enable logging.googleapis.com \ eventarc.googleapis.com \ eventarcpublishing.googleapis.com
Si procede, habilita la API relacionada con los eventos de registros de auditoría de Cloud. Por ejemplo, para los registros de auditoría de Cloud Run Functions, habilita
cloudfunctions.googleapis.com
.Si aún no tienes una, crea una cuenta de servicio gestionada por el usuario y, a continuación, concédele los roles y permisos necesarios para que Eventarc pueda gestionar eventos de tu servicio de destino.
Crea la cuenta de servicio:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Sustituye
SERVICE_ACCOUNT_NAME
por el nombre de la cuenta de servicio. Debe tener entre 6 y 30 caracteres, y puede contener caracteres alfanuméricos en minúscula y guiones. Una vez que hayas creado una cuenta de servicio, no podrás cambiar su nombre.Concede los roles o permisos de gestión de identidades y accesos necesarios para las invocaciones autenticadas o no autenticadas. Para obtener más información, consulta Roles y permisos para destinos de Cloud Run.
Crear activador
Puedes crear un activador de Eventarc mediante la CLI de Google Cloud o a través de la Google Cloud consola.
Consola
- En la Google Cloud consola, ve a la página Triggers (Activadores) de Eventarc.
- Haz clic en Crear activador.
- Escribe un Nombre del activador.
Es el ID del activador y debe empezar por una letra. Puede contener hasta 63 letras minúsculas, números o guiones.
- En Tipo de activador, selecciona Fuentes de Google.
- Selecciona un proveedor de eventos.
Es el servicio de Google que es la fuente de los eventos a través de sus registros de auditoría. Por ejemplo, selecciona BigQuery.
Tenga en cuenta que el nombre del proveedor de eventos que se usa en la documentaciónGoogle Cloud asociada puede no tener el prefijo Cloud o Google Cloud. Por ejemplo, en la consola, Memorystore para Redis se denomina Google Cloud Memorystore para Redis.
- En la lista Tipo de evento, en los eventos a través de registros de auditoría de Cloud, selecciona un tipo de evento.
- Selecciona una de las siguientes opciones:
- Cualquier recurso: es el valor predeterminado e incluye recursos creados dinámicamente que tienen identificadores generados en el momento de la creación.
- Recurso específico: debes proporcionar el nombre completo del recurso.
- Patrón de ruta: puedes filtrar recursos mediante un patrón de ruta.
Por ejemplo, escribe
projects/_/buckets/eventarc-bucket/objects/random.txt
oprojects/_/buckets/**/r*.txt
.
- Para especificar la codificación de la carga útil del evento, en la lista Tipo de contenido de los datos del evento, seleccione application/json o application/protobuf.
Ten en cuenta que una carga útil de evento con formato JSON es más grande que una con formato Protobuf. Esto puede afectar a la fiabilidad en función del destino de los eventos y sus límites de tamaño. Para obtener más información, consulta Problemas conocidos.
- En la lista Región, selecciona una región.
Los activadores de Cloud Audit Logs para Eventarc están disponibles en regiones específicas y en la región global, pero no en ubicaciones birregionales y multirregionales. Para evitar problemas de rendimiento y de residencia de datos causados por un activador global, Google recomienda que la ubicación coincida con la del servicio Google Cloud que genera eventos. Para obtener más información, consulta Ubicaciones de Eventarc.
Si especificas la ubicación global, recibirás eventos de todas las ubicaciones que coincidan con los filtros de eventos. Por ejemplo, si creas un activador de Eventarc global, puedes recibir eventos de recursos de las multirregiones de la UE y de EE. UU.
Ten en cuenta que hay un problema conocido con los activadores de registros de auditoría de Cloud para Compute Engine que provoca que los eventos procedan de una sola región:
us-central1
. Esto ocurre independientemente de dónde se encuentre la instancia de máquina virtual. Cuando crees el activador, define la ubicación del activador comous-central1
oglobal
. - Selecciona la cuenta de servicio que invocará tu servicio o flujo de trabajo.
También puedes crear una cuenta de servicio.
Especifica la dirección de correo de la cuenta de servicio de Gestión de Identidades y Accesos (IAM) asociada al activador y a la que has concedido roles específicos necesarios para Eventarc.
- En la lista Destino del evento, selecciona Cloud Run.
- Selecciona un servicio.
Es el nombre del servicio que recibe los eventos del activador. El servicio debe estar en el mismo proyecto que el activador y recibirá eventos como solicitudes HTTP POST enviadas a la ruta de la URL raíz (
/
) cada vez que se genere el evento. - También puede especificar la ruta de URL del servicio a la que se enviará la solicitud entrante.
Es la ruta relativa del servicio de destino al que se deben enviar los eventos del activador. Por ejemplo:
/
,/route
,route
,route/subroute
. - Si quieres añadir una etiqueta, puedes hacer clic en ¿Qué son las etiquetas? Añadir etiqueta. Las etiquetas son pares clave-valor que te ayudan a organizar tus recursosGoogle Cloud . Para obtener más información, consulta
- Haz clic en Crear.
Una vez creado un activador, no se pueden modificar los filtros de origen de eventos. En su lugar, cree un nuevo activador y elimine el antiguo. Para obtener más información, consulta Gestionar activadores.
gcloud
Para crear un activador, ejecuta un comando gcloud eventarc triggers create
junto con las marcas obligatorias y opcionales.
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" \ --event-data-content-type="EVENT_DATA_CONTENT_TYPE" \ --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
Haz los cambios siguientes:
TRIGGER
: el ID del activador o un identificador completo.LOCATION
: la ubicación del activador de Eventarc. También puedes definir la propiedadeventarc/location
; por ejemplo,gcloud config set eventarc/location us-central1
.Los activadores de Cloud Audit Logs para Eventarc están disponibles en regiones específicas y en la región global, pero no en ubicaciones birregionales ni multirregionales. Para evitar problemas de rendimiento y de residencia de datos causados por un activador global, Google recomienda que la ubicación coincida con la del servicio que genera eventos. Google Cloud Para obtener más información, consulta Ubicaciones de Eventarc.
Si especificas la ubicación global, recibirás eventos de todas las ubicaciones que coincidan con los filtros de eventos. Por ejemplo, si creas un activador de Eventarc global, puedes recibir eventos de recursos de las multirregiones de la UE y de EE. UU.
Ten en cuenta que hay un problema conocido con los activadores de registros de auditoría de Cloud de Compute Engine que provoca que los eventos procedan de una sola región:
us-central1
. Esto ocurre independientemente de dónde se encuentre la instancia de máquina virtual. Cuando crees el activador, define su ubicación comous-central1
oglobal
.-
DESTINATION_RUN_SERVICE
: el nombre del servicio de Cloud Run que recibe los eventos del activador. El servicio puede estar en cualquiera de las ubicaciones admitidas de Cloud Run y no tiene por qué estar en la misma ubicación que el activador. Sin embargo, el servicio debe estar en el mismo proyecto que el activador y recibirá eventos como solicitudes HTTP POST enviadas a la ruta de URL raíz (/
) cada vez que se genere el evento. -
DESTINATION_RUN_REGION
: (opcional) la región en la que se puede encontrar el servicio de Cloud Run de destino. Si no se especifica, se presupone que el servicio está en la misma región que el activador.
SERVICE_NAME
: identificador del servicio Google CloudMETHOD_NAME
: identificador de la operación
-
EVENT_DATA_CONTENT_TYPE
: (opcional) la codificación de la carga útil del evento. Puede serapplication/json
oapplication/protobuf
. La codificación predeterminada esapplication/json
.Ten en cuenta que una carga útil de eventos con formato JSON es más grande que una con formato Protobuf. Esto puede afectar a la fiabilidad en función del destino de los eventos y de sus límites de tamaño. Para obtener más información, consulta Problemas conocidos.
SERVICE_ACCOUNT_NAME
: el nombre de tu cuenta de servicio gestionada por el usuario.PROJECT_ID
: tu ID de proyecto Google Cloud .
Notas:
Estas marcas son obligatorias:
--event-filters="type=google.cloud.audit.log.v1.written"
--event-filters="serviceName=VALUE"
--event-filters="methodName=VALUE"
También puede filtrar los eventos de un recurso específico mediante la marca
--event-filters="resourceName=VALUE"
y especificando la ruta completa del recurso. Omite la marca para los recursos creados dinámicamente que tengan identificadores generados en el momento de la creación. También puede filtrar eventos de un conjunto de recursos mediante la marca--event-filters-path-pattern="resourceName=VALUE"
y especificando el patrón de ruta de recurso.
- Cada activador puede tener varios filtros de eventos separados por comas en una
--event-filters
=[ATTRIBUTE
=VALUE
,...] marca, o bien puede repetir la marca para añadir más filtros. Solo se envían al destino los eventos que coinciden con todos los filtros. No se admiten comodines ni expresiones regulares. - Una vez creado un activador, no se puede cambiar el tipo de filtro de eventos. Si quieres usar otro tipo de evento, debes crear un nuevo activador.
- La marca
--service-account
se usa para especificar la dirección de correo de la cuenta de servicio de gestión de identidades y accesos (IAM) asociada al activador. - También puede especificar una ruta relativa en el servicio 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=bigquery.googleapis.com" \
--event-filters="methodName=google.cloud.bigquery.v2.JobService.InsertJob" \
--service-account=${SERVICE_ACCOUNT_NAME}@${PROJECT_ID}.iam.gserviceaccount.com
De esta forma, se crea un activador llamado helloworld-trigger
para los registros de auditoría escritos por bigquery.googleapis.com
y para la operación identificada como google.cloud.bigquery.v2.JobService.InsertJob
.
Terraform
Puedes crear un activador para un destino de Cloud Run con Terraform. Para obtener más información, consulta el artículo sobre cómo crear un activador con Terraform.
Mostrar un activador
Para confirmar que se ha creado un activador, puedes enumerar los activadores de Eventarc con la CLI de Google Cloud o a través de la Google Cloud consola.
Consola
En la Google Cloud consola, ve a la página Triggers (Activadores) de Eventarc.
En esta página se muestran todos tus activadores de todas las ubicaciones, así como detalles como nombres, regiones, proveedores de eventos, destinos y más.
Para filtrar tus activadores, sigue estos pasos:
- Haz clic en Filtrar o en el campo Activar filtros.
- En la lista Propiedades, seleccione una opción para filtrar los activadores.
Puede seleccionar una sola propiedad o usar el operador lógico
OR
para añadir más propiedades.Para ordenar los activadores, junto al encabezado de cualquier columna admitida, haz clic en
Ordenar.
gcloud
Ejecuta el siguiente comando para ver una lista de tus activadores:
gcloud eventarc triggers list --location=-
Este comando muestra los activadores de todas las ubicaciones e incluye detalles como nombres, tipos, destinos y estados.