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, incluidos el origen del evento y el servicio Cloud Run de destino.
Eventarc entrega eventos al receptor de eventos en formato de CloudEvents a través de una solicitud HTTP.
En estas instrucciones, se muestra cómo configurar el enrutamiento de eventos en el servicio de Cloud Run que activa un evento directo Firebase Alerts . Para obtener más detalles, consulta la lista de eventos directos compatibles.
Prepárate para crear un activador
Antes de crear un activador, completa estos requisitos previos:
Console
En la página del selector de proyectos de la consola de Google Cloud, elige o crea un proyecto de Google Cloud.
Habilita las APIs de Cloud Logging, Eventarc y Eventarc Publishing.
Si corresponde, habilita la API relacionada con los eventos directos. Por ejemplo, para eventos Firebase Alerts , habilita la APIFirebase Alerts .
Si aún no tienes una, crea una cuenta de servicio administrada por el usuario y, luego, otórgale los roles y los permisos necesarios para que Eventarc pueda administrar los eventos para el servicio de destino.
En la consola de Google Cloud, ve a la página Crear cuenta de servicio.
Elige tu proyecto.
Escribe un nombre en el campo Nombre de cuenta de servicio. La consola de Google Cloud completa el campo ID de la cuenta de servicio en función de este nombre.
Opcional: 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 Elegir un rol, elige los roles necesarios de Identity and Access Management (IAM) que otorgarás a tu cuenta de servicio para las invocaciones autenticadas o no autenticadas. Si deseas obtener más información, consulta Roles y permisos para destinos de Cloud Run.
Para obtener roles adicionales, haz clic en
Agregar otro rol y agrega cada rol adicional.Haz clic en Continuar.
Para terminar de crear la cuenta, haz clic en Listo.
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 de Cloud Logging, Eventarc y Eventarc Publishing.
gcloud services enable logging.googleapis.com \ eventarc.googleapis.com \ eventarcpublishing.googleapis.com
Si corresponde, habilita la API relacionada con los eventos directos. Por ejemplo, para los eventos Firebase Alerts , habilita
firestore.googleapis.com
.Si aún no tienes una, crea una cuenta de servicio administrada por el usuario y, luego, otórgale los roles y los permisos necesarios para que Eventarc pueda administrar los eventos para el servicio de destino.
Cree la cuenta de servicio:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Reemplaza
SERVICE_ACCOUNT_NAME
por el nombre de la cuenta de servicio. Debe tener entre 6 y 30 caracteres y puede contener guiones y caracteres alfanuméricos en minúscula. Después de crear una cuenta de servicio, no podrás cambiar su nombre.Otorga los roles o permisos necesarios de Identity and Access Management (IAM) para las invocaciones autenticadas o no autenticadas. Si deseas obtener más información, consulta Roles y permisos para destinos de Cloud Run.
Crear un activador
Puedes crear un activador de Eventarc con Google Cloud CLI o a través de la consola de Google Cloud.
Console
- En la consola de Google Cloud, ve a la página Activadores de Eventarc.
- Haz clic en Crear activador.
- Escribe un nombre de activador.
Este es el ID del activador y debe empezar con una letra. Puede contener hasta 63 letras en minúscula, números o guiones.
- Para el Tipo de activador, elige Fuentes de Google.
- En la lista Proveedor del evento, elige
Firebase Alerts.
Ten en cuenta que el nombre del proveedor de eventos que se usa en la documentación de Google Cloud asociada podría no tener el prefijo Cloud o Google Cloud. Por ejemplo, en la consola, Memorystore for Redis se denomina Google Cloud Memorystore para Redis.
- En la lista Tipo de evento, en los eventos Directos, selecciona un tipo de evento.
- Para especificar la codificación de la carga útil del evento, en la lista Tipo de contenido
de datos de eventos, elige application/json o
application/protobuf.
Ten en cuenta que una carga útil de evento con formato JSON es mayor que una con formato en Protobuf. Esto puede afectar la confiabilidad según el destino del evento y los límites de tamaño del evento. Para obtener más información, consulta Problemas conocidos.
- En la lista Región, elige global (Global).
Para obtener más información, consulta Ubicaciones de Eventarc.
- En el campo Atributo 1, el ID de recurso
de alerttype actúa como un
filtro de evento. Elige un operador para este filtro:
- Igual
- Patrón de ruta de acceso
Para obtener más información, consulta Información sobre los patrones de ruta de acceso.
- En el campo Valor del atributo 1, escribe una de las siguientes
opciones:
appDistribution.inAppFeedback
: Se envía el evento cuando un verificador envía comentarios en la app para una app determinadaappDistribution.newTesterIosDevice
: Se envía el evento cuando se registra un dispositivo de prueba nuevo verificador de iOS para una app determinadabilling.planAutomatedUpdate
: Se envía el evento cuando se actualiza de forma automática el plan de facturación de un proyecto de Firebase. Por ejemplo, cuando un plan cambia a una versión inferior debido a problemas de pagobilling.planUpdate
: Se envía el evento cuando un usuario cambia el plan de facturación para un proyecto de Firebase. Por ejemplo, cuando se adjunta una cuenta de facturación a un proyecto o se desconecta de élcrashlytics.missingSymbolFile
: el evento se envía cuando Firebase Crashlytics determina que no tiene los símbolos de depuración adecuados para simbolizar un informe de fallas entrante.crashlytics.newAnrIssue
: Se envía el evento cuando una app experimenta un error nuevo de Aplicación no responde (ANR) (no para ningún evento idéntico posterior)crashlytics.newFatalIssue
: Se envía el evento cuando una app experimenta una falla irrecuperable nueva (no para ningún evento idéntico posterior)crashlytics.newNonfatalIssue
: Se envía el evento cuando una app experimenta un error nuevo recuperable (no para ningún evento idéntico posterior)crashlytics.regression
: Se envía el evento cuando una app experimenta una falla por un problema que se marcó como cerrado para una versión anterior de la appcrashlytics.stabilityDigest
: Se envía el evento cuando hay una notificación sobre los principales problemas del momento en Crashlyticscrashlytics.velocity
: Se envía el evento cuando un solo problema es responsable de provocar que una cantidad significativa de sesiones de la app fallenperformance.threshold
: Se envía el evento cuando el rendimiento de una métrica supera el umbral establecido
- De manera opcional, puedes filtrar eventos para un ID de app de Firebase específico. Haz clic en add Agregar filtro y especifica el appid.
- Elige la cuenta de servicio que invocará el servicio
o el flujo de trabajo.
O bien, puedes crear una cuenta de servicio nueva.
Esto especifica el correo electrónico de la cuenta de servicio de Identity and Access Management (IAM) asociado con el activador y al que otorgaste antes roles específicos que requiere Eventarc.
- En la lista Destino del evento, elige Cloud Run.
- Elige un servicio.
Este 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 POST HTTP enviadas a su ruta de URL raíz (
/
) cada vez que se genere el evento. - De manera opcional, puedes especificar la ruta de URL de servicio a la que enviar
la solicitud entrante.
Esta es la ruta de acceso relativa en el servicio de destino al que se deben enviar los eventos del activador. Por ejemplo:
/
,/route
,route
,route/subroute
. - Haz clic en Crear.
Después de que se crea un activador, los filtros de fuente del evento no se pueden cambiar. En su lugar, crea un activador nuevo y borra el anterior. Para obtener más información, consulta Administra 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=global \ --destination-run-service=DESTINATION_RUN_SERVICE \ --destination-run-region=DESTINATION_RUN_REGION \ --event-filters="type=google.firebase.firebasealerts.alerts.v1.published" \ --event-filters="alerttype=ALERT_TYPE" \ --event-data-content-type="EVENT_DATA_CONTENT_TYPE" \ --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com"
Reemplaza lo siguiente:
TRIGGER
: el ID del activador o un identificador completamente calificado.-
DESTINATION_RUN_SERVICE
: el nombre del servicio de Cloud Run que recibe los eventos para el activador. El servicio puede estar en cualquiera de las ubicaciones admitidas de Cloud Run y no es necesario que esté 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 POST HTTP enviadas a su 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 supone que el servicio se encuentra en la misma región que el activador.
ALERT_TYPE
: el tipo de alerta de Firebase y puede ser uno de los siguientes:appDistribution.inAppFeedback
: Se envía el evento cuando un verificador envía comentarios en la app para una app determinadaappDistribution.newTesterIosDevice
: Se envía el evento cuando se registra un dispositivo de prueba nuevo verificador de iOS para una app determinadabilling.planAutomatedUpdate
: Se envía el evento cuando se actualiza de forma automática el plan de facturación de un proyecto de Firebase. Por ejemplo, cuando un plan cambia a una versión inferior debido a problemas de pagobilling.planUpdate
: Se envía el evento cuando un usuario cambia el plan de facturación para un proyecto de Firebase. Por ejemplo, cuando se adjunta una cuenta de facturación a un proyecto o se desconecta de élcrashlytics.missingSymbolFile
: el evento se envía cuando Firebase Crashlytics determina que no tiene los símbolos de depuración adecuados para simbolizar un informe de fallas entrante.crashlytics.newAnrIssue
: Se envía el evento cuando una app experimenta un error nuevo de Aplicación no responde (ANR) (no para ningún evento idéntico posterior)crashlytics.newFatalIssue
: Se envía el evento cuando una app experimenta una falla irrecuperable nueva (no para ningún evento idéntico posterior)crashlytics.newNonfatalIssue
: Se envía el evento cuando una app experimenta un error nuevo recuperable (no para ningún evento idéntico posterior)crashlytics.regression
: Se envía el evento cuando una app experimenta una falla por un problema que se marcó como cerrado para una versión anterior de la appcrashlytics.stabilityDigest
: Se envía el evento cuando hay una notificación sobre los principales problemas del momento en Crashlyticscrashlytics.velocity
: Se envía el evento cuando un solo problema es responsable de provocar que una cantidad significativa de sesiones de la app fallenperformance.threshold
: Se envía el evento cuando el rendimiento de una métrica supera el umbral establecido
ALERT_TYPE
debe ser uno de los siguientes:- Iguales; por ejemplo,
--event-filters="alerttype=appDistribution.inAppFeedback"
- Patrón de ruta; por ejemplo,
--event-filters-path-pattern="alerttype=appDistribution.*"
o--event-filters-path-pattern="alerttype=crashlytics.new*"
.Para obtener más información, consulta Información sobre los patrones de ruta de acceso.
-
EVENT_DATA_CONTENT_TYPE
: la codificación de la carga útil del evento (opcional). Puede serapplication/json
oapplication/protobuf
. La codificación predeterminada esapplication/json
.Ten en cuenta que una carga útil de evento con formato JSON es mayor que una con formato Protobuf. Esto puede afectar la confiabilidad según el destino del evento y los límites de tamaño del evento. Para obtener más información, consulta Problemas conocidos.
SERVICE_ACCOUNT_NAME
: el nombre de la cuenta de servicio administrada por el usuario.PROJECT_ID
: Es el ID de tu proyecto de Google Cloud.
Notas:
- La marca
--location
debe serglobal
. Para obtener más información, consulta Ubicaciones de Eventarc.
Estas marcas son obligatorias:
--event-filters="type=google.firebase.firebasealerts.alerts.v1.published"
--event-filters="alerttype=ALERT_TYPE"
o bien--event-filters-path-pattern="alerttype=ALERT_TYPE"
De manera opcional, puedes filtrar eventos para un ID de app de Firebase específico con la marca
--event-filters="appid=APP_ID"
y especificando una concordancia exacta.
- Después de crear un activador, no se puede cambiar el tipo de filtro de eventos. Para un tipo de evento diferente, debes crear un activador nuevo.
- La marca
--service-account
se usa para especificar el correo electrónico de la cuenta de servicio de Identity and Access Management (IAM) asociado con el activador. - De manera opcional, especifica una ruta de acceso relativa en el servicio de Cloud Run
de destino al que se deben enviar los eventos del activador con la marca
--destination-run-path
.
Ejemplo:
gcloud eventarc triggers create helloworld-trigger \ --location=global \ --destination-run-service=helloworld-events \ --destination-run-region=us-central1 \ --event-filters="type=google.firebase.firebasealerts.alerts.v1.published" \ --event-filters="alerttype=crashlytics.velocity" \ --service-account=${SERVICE_ACCOUNT_NAME}@${PROJECT_ID}.iam.gserviceaccount.com
Con este comando, se crea un activador llamado helloworld-trigger
para el evento identificado como google.firebase.firebasealerts.alerts.v1.published
y un tipo de alerta crashlytics.velocity
.
Terraform
Puedes crear un activador para un destino de Cloud Run con Terraform. Para obtener más información, consulta Crea un activador con Terraform.
Enumera un activador
Para confirmar la creación de un activador, enumera los activadores de Eventarc con Google Cloud CLI o a través de la consola de Google Cloud.
Console
En la consola de Google Cloud, ve a la página Activadores de Eventarc.
En esta página, se enumeran tus activadores en todas las ubicaciones y se incluyen detalles, como nombres, regiones, proveedores de eventos, destinos y mucho más.
Para filtrar tus activadores, haz lo siguiente:
- Haz clic en Filtrar o en el campo Filtrar activadores.
- En la lista Propiedades, elige una opción para filtrar los activadores.
Puedes elegir una sola propiedad o usar el operador lógico
OR
para agregar más propiedades.Para ordenar los activadores, junto con el encabezado de la columna compatible, haz clic en
Ordenar.
gcloud
Ejecuta el siguiente comando para enumerar los activadores:
gcloud eventarc triggers list --location=-
Este comando enumera tus activadores en todas las ubicaciones y, además, incluye detalles como nombres, tipos, destinos y estados.