Habilitar las notificaciones de eventos de modelos con Cloud Functions y Pub/Sub
Organízate con las colecciones
Guarda y clasifica el contenido según tus preferencias.
En Vertex AI Vision, los modelos reciben datos multimedia de dispositivos como cámaras, ejecutan predicciones de IA en los datos y generan anotaciones de forma continua.
Con frecuencia, se envían esos datos procesados a un destino de datos ("receptor de datos"), como un almacén de contenido multimedia o BigQuery, para realizar más tareas analíticas. Sin embargo, puede que haya casos en los que algunas anotaciones deban gestionarse de forma diferente o que las necesidades de anotación sean urgentes. Las integraciones con funciones de Cloud Run y Pub/Sub te ayudan a satisfacer estas necesidades.
Para poder habilitar las notificaciones de eventos de modelos, debes hacer lo siguiente:
Escucha los datos del modelo y genera eventos a partir de ellos mediante Cloud Run Functions.
Envía los eventos generados por las funciones de Cloud Run a través del canal de eventos de Pub/Sub.
Modelos admitidos
Los siguientes modelos ofrecen integraciones de generación de eventos de Cloud Run Functions y de notificaciones de eventos de Pub/Sub:
Opcional. Crea una función de Cloud Run para usarla.
Si no creas tu función de Cloud Run antes de configurar las funciones de Cloud Run para procesar la salida del modelo, debes crearla durante ese proceso.
Opcional. Crea un tema de Pub/Sub para usarlo.
Si no crea el tema de Pub/Sub antes de habilitar la notificación de eventos del modelo con Pub/Sub, deberá crearlo durante ese proceso.
Opcional. Elige y crea una suscripción de Pub/Sub.
Si no crea su suscripción de Pub/Sub antes de habilitar la notificación de eventos de modelo con Pub/Sub, deberá crearla después para leer los mensajes de un tema.
Configurar funciones de Cloud Run para procesar la salida del modelo
Para activar notificaciones basadas en eventos, primero debes configurar funciones de Cloud Run para procesar la salida del modelo y generar eventos.
Tu función de Cloud Run se conecta al modelo y escucha su salida
como acción de posprocesamiento. La función de Cloud Run que debes devolver
un AppPlatformCloudFunctionResponse. Los eventos (appplatformeventbody) se envían al tema de Pub/Sub que configures en el siguiente paso.
Función de Cloud Run de ejemplo (modelo de analíticas de ocupación)
Función de Cloud Run de ejemplo
/***RespondstoanyHTTPrequest.**@param{!express:Request}reqHTTPrequestcontext.*@param{!express:Response}resHTTPresponsecontext.*/exports.hello_http=(req,res)=>{//Loggingstatementcanbereadwithcmd`gcloudfunctionslogsread{$functionName}`.//Formoreaboutlogging,pleaseseehttps://cloud.google.com/functions/docs/monitoring//Theprocessoroutputwillbestoredinreq.body.constmessageString=constructMessage(req.body);//SendyourmessagetooperatoroutputwithresHTTPresponsecontext.res.status(200).send(messageString);};functionconstructMessage(data){//Typically,yourprocessoroutputshouldcontainsappPlatformMetadata & it's designed output.//Herewewillusetheoccupancyanalyticsmodelasanexample.constappPlatformMetadata=data.appPlatformMetadata;constannotations=data.annotations;constevents=[];for(constannotationofannotations){events.push({"event_message":"Event message goes here","payload":{"attr_key_goes_here":"val_goes_here"},"event_id":"event_id_goes_here"});}//Typically,yourcloudfunctionshouldreturnastringrepresentaJSONwhichhastwofields://"annotations"mustfollowthespecificationofthetargetmodel.//"events"shouldbeoftype"AppPlatformEventBody".constmessageJson={"annotations":annotations,"events":events,};returnJSON.stringify(messageJson);}
Sigue estas instrucciones para enviar el flujo de salida del modelo a tu función de Cloud Run:
Consola
Abre la pestaña Aplicaciones del panel de control de Vertex AI Vision.
Selecciona schemaVer aplicación junto al nombre de tu aplicación en la lista.
Haz clic en el modelo admitido para abrir el panel lateral de detalles del modelo.
En la lista de post-procesamiento de la sección Notificación de eventos,
selecciona tu función de Cloud Run o crea una.
Habilitar la notificación de eventos de modelos con Pub/Sub
Una vez que hayas configurado las funciones de Cloud Run para procesar la salida del modelo y generar eventos, puedes configurar las notificaciones de eventos con Pub/Sub. Para leer mensajes de un tema, también debes elegir y crear una suscripción de Pub/Sub.
Consola
Abre la pestaña Aplicaciones del panel de control de Vertex AI Vision.
[[["Es fácil de entender","easyToUnderstand","thumb-up"],["Me ofreció una solución al problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Es difícil de entender","hardToUnderstand","thumb-down"],["La información o el código de muestra no son correctos","incorrectInformationOrSampleCode","thumb-down"],["Me faltan las muestras o la información que necesito","missingTheInformationSamplesINeed","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2025-09-11 (UTC)."],[],[],null,["# Enable model event notification with Cloud Functions and Pub/Sub\n\nIn Vertex AI Vision, models receive media data from devices like cameras, run AI predictions on the data, and produce annotations continuously. Frequently you send that processed data to a data destination (\"data sink\") such as a media warehouse or BigQuery for further analytic jobs. However, you may have a case where some annotations must be handled differently, or the annotation needs are time-sensitive. Integrations with Cloud Run functions and Pub/Sub help you address these needs.\n\n\u003cbr /\u003e\n\nTo be able to enable model event notifications, you need to do the following:\n\n\u003cbr /\u003e\n\n1. Listen to the model data and generate events from it using Cloud Run functions.\n2. Send the Cloud Run functions generated events through the Pub/Sub event channel.\n\n#### Supported models\n\nThe following models offer Cloud Run functions event generation and\nPub/Sub event notification integrations:\n\n- [Occupancy analytics](/vision-ai/docs/occupancy-analytics-model) model\n- Vertex AI [custom-trained models](#add-vertex-custom-model)\n\nBefore you begin\n----------------\n\n- Create an app with, at minimum, a stream node and a [supported model](#event-supported-models) node.\n- Optional. [Install the Vertex AI Vision SDK](/vision-ai/docs/cloud-environment#get-source-code) and [ingest data](/vision-ai/docs/create-manage-streams#ingest-videos) into your app. If you don't do this before you set up event notification you must do it after.\n- Optional. [Create a Cloud Run function](/functions/docs/create-deploy-gcloud-1st-gen) to use. If you don't create your Cloud Run function before you configure Cloud Run functions to process model output, you must create it during that process.\n- Optional. [Create a Pub/Sub topic](/pubsub/docs/create-topic) to use. If you don't create your Pub/Sub topic before you enable model event notification with Pub/Sub, you must create it during that process.\n- Optional. [Choose and create a Pub/Sub subscription](/pubsub/docs/create-subscription). If you don't create your Pub/Sub subscription before you enable model event notification with Pub/Sub, you must create it after to read messages from a topic.\n\n### Configure Cloud Run functions to process model output\n\nTo trigger event-based notifications, you must first set up Cloud Run functions\nto process model output and generate events.\n\nYour Cloud Run function connects to the model and listens to its output\nas its post-processing action. The Cloud Run function you should return\nan [`AppPlatformCloudFunctionResponse`](/vision-ai/docs/reference/rpc/google.cloud.visionai.v1#appplatformcloudfunctionresponse). The events\n([`appplatformeventbody`](/vision-ai/docs/reference/rpc/google.cloud.visionai.v1#appplatformeventbody)) are\nsent to the Pub/Sub topic you configure in the next step.\n\n\u003cbr /\u003e\n\n#### Sample Cloud Run function (occupancy analytics model)\n\n### Sample Cloud Run function\n\n /**\n * Responds to any HTTP request.\n *\n * @param {!express:Request} req HTTP request context.\n * @param {!express:Response} res HTTP response context.\n */\n exports.hello_http = (req, res) =\u003e {\n // Logging statement can be read with cmd `gcloud functions logs read {$functionName}`.\n // For more about logging, please see https://cloud.google.com/functions/docs/monitoring\n\n // The processor output will be stored in req.body.\n const messageString = constructMessage(req.body);\n\n // Send your message to operator output with res HTTP response context.\n res.status(200).send(messageString);\n };\n\n function constructMessage(data) {\n // Typically, your processor output should contains appPlatformMetadata & it's designed output.\n // Here we will use the occupancy analytics model as an example.\n const appPlatformMetadata = data.appPlatformMetadata;\n const annotations = data.annotations;\n const events = [];\n for(const annotation of annotations) {\n events.push({\n \"event_message\": \"Event message goes here\",\n \"payload\" : {\n \"attr_key_goes_here\" : \"val_goes_here\"\n },\n \"event_id\" : \"event_id_goes_here\"\n });\n }\n\n // Typically, your cloud function should return a string represent a JSON which has two fields:\n // \"annotations\" must follow the specification of the target model.\n // \"events\" should be of type \"AppPlatformEventBody\".\n const messageJson = {\n \"annotations\": annotations,\n \"events\": events,\n };\n return JSON.stringify(messageJson);\n }\n\nUse the following instructions to\nto send the model output stream to your Cloud Run function: \n\n### Console\n\n1. Open the **Applications** tab of the Vertex AI Vision dashboard.\n\n [Go to the Applications tab](https://console.cloud.google.com/ai/vision-ai/applications)\n2. Select schema**View app** next to the\n name of your application from the list.\n\n3. Click on the [supported model](#event-supported-model) to open the model\n details side panel.\n\n4. In the **post-processing** list of the **Event notification** section,\n select your existing Cloud Run function, or create a new one.\n\n### Enable model event notification with Pub/Sub\n\nAfter you have set up Cloud Run functions to process model output and generate\nevents, you can set up event notification with Pub/Sub. To read messages\nfrom a topic, you also need to\n[Choose and create a Pub/Sub subscription](/pubsub/docs/create-subscription). \n\n### Console\n\n1. Open the **Applications** tab of the Vertex AI Vision dashboard.\n\n [Go to the Applications tab](https://console.cloud.google.com/ai/vision-ai/applications)\n2. Select schema**View app** next to the\n name of your application from the list.\n\n3. Click on the [supported model](#event-supported-model) to open the model\n details side panel.\n\n4. In the **Event notification** section, select\n **Set up event notification**.\n\n5. In the **Set up Pub/Sub for event notifications** option window that\n opens, choose your existing Pub/Sub topic, or create a new one.\n\n6. In the **Frequency** field, set an integer value for the frequency value\n in seconds a notification for the same type of event can be sent.\n\n7. Click **Set up**.\n\nWhat's next\n-----------\n\n- Read instructions about how to deploy your app to test model event notification in [Deploy and undeploy an application](/vision-ai/docs/deploy-app).\n- Work through the [Vertex AI Vision Occupancy Analytics app with event management](https://codelabs.developers.google.com/vertex-ai-event-management#0) codelab.\n- Learn more about Pub/Sub and Cloud Run functions in [What is Pub/Sub?](/pubsub/docs/overview) and the [Cloud Run functions overview](/functions/docs/concepts/overview)."]]