MongoDB ofrece un AWS Eventbridge fuente de eventos del partner que te permite enviar eventos de Atlas Trigger a un bus de eventos en lugar de invocar una función de Atlas. Puede configurar cualquier tipo de activador para enviar eventos a EventBridge. Los activadores de base de datos también admiten el manejo de errores personalizados, para reducir la suspensión de disparadores debido a errores no críticos.
Todo lo que necesitas para enviar eventos de activador a EventBridge es una ID de cuenta de AWS. Esta guía te llevará por el proceso de encontrar tu ID de cuenta, configurar el activador, asociar la fuente de eventos del activador con un bus de eventos y configurar el manejo de errores personalizado.
Nota
Guía oficial de fuente de eventos asociados de AWS
Esta guía se basa en la documentación de Amazon Recepción de eventos de un proveedor SaaS.
Procedimiento
Nota
Las entradas individuales para un evento de EventBridge activador deben ser menores de 256 KB.
Aprenda a reducir el tamaño de su PutEvents entrada en la sección Optimización del rendimiento.
Set Up the MongoDB Partner Event Source
Para enviar eventos de activador a AWS EventBridge, necesitas el siguiente: AWS account ID de la cuenta que debe recibir los eventos.
Abra la consola de Amazon EventBridge y Partner event sources haga clic en en el menú de navegación.
Busca la fuente del evento de socio MongoDB y luego haz clic en Set up.
Desde la página de fuente de evento de socios de MongoDB, haz clic en Copy para copiar tu ID de cuenta de AWS al portapapeles.
Configure the Trigger
Después de tener el AWS account ID, puedes configurar un activador de base de datos o activador programado para enviar eventos a EventBridge.
Puede configurar el disparador en la interfaz de usuario de Atlas o mediante la CLI de App Services.
En la interfaz de Atlas, cree y configure un nuevo activador de base de datos o un activador programado con la siguiente configuración:
Selecciona EventBridge como el tipo de evento.
Pega el AWS Account ID que copiaste de EventBridge.
Seleccione un AWS Region al cual enviar los eventos de activación.
Nota
Regiones de AWS compatibles
Para obtener una lista completa de las regiones de AWS compatibles, consulte la guía de Amazon Recibiendo eventos de un socio SaaS.
(Opcional solo para activadores de base de datos) Configure una función para manejar errores de activación.
Para obtener más detalles, consulte la sección Gestión personalizada de errores en esta página.
haga clic para ampliarPara habilitar JSON extendido, activa la configuración Enable Extended JSON en la sección Advanced (Optional).
De forma predeterminada, los activadores convierten los tipos BSON de los objetos de evento en tipos JSON estándar.
Activar JSON extendido conserva la información de tipo BSON al serializar los objetos de evento en el formato JSON extendido en su lugar. Esto preserva la información del tipo a costa de la legibilidad e interoperabilidad.
Autenticar a un usuario de MongoDB Atlas
Utilice su clave API de administración de MongoDB Atlas para iniciar sesión en la CLI de App Services:
appservices login --api-key="<API KEY>" --private-api-key="<PRIVATE KEY>" Extraiga los últimos archivos de configuración de su aplicación
Ejecute el siguiente comando para obtener una copia local de sus archivos de configuración:
appservices pull --remote=<App ID> De forma predeterminada, el comando extrae los archivos al directorio de trabajo actual. Puede especificar una ruta de directorio con el indicador opcional
--local.Crea un archivo de configuración de activador en tu directorio
/triggerslocal. Omitir el campofunction_namey definir un procesador de eventosAWS_EVENTBRIDGE.Establece el campo
account_iden el AWS Account ID que copiaste de EventBridge.Configure el campo
regionen una región de AWS.Nota
Regiones de AWS compatibles
Para obtener una lista completa de las regiones de AWS compatibles, consulte la guía de Amazon Recibiendo eventos de un socio SaaS.
To enable Extended JSON, set the
extended_json_enabledfield totrue.De forma predeterminada, los activadores convierten los tipos BSON de los objetos de evento en tipos JSON estándar.
Activar JSON extendido conserva la información de tipo BSON al serializar los objetos de evento en el formato JSON extendido en su lugar. Esto preserva la información del tipo a costa de la legibilidad e interoperabilidad.
(Opcional solo para activadores de base de datos) Configure una función para manejar errores de activación.
Para obtener más detalles, consulte la sección Gestión personalizada de errores en esta página.
El archivo de configuración del activador debe parecerse al siguiente:
{ "name": "...", "type": "...", "event_processors": { "AWS_EVENTBRIDGE": { "config": { "account_id": "<AWS Account ID>", "region": "<AWS Region>", "extended_json_enabled": <boolean> } } } }
Associate the Trigger Event Source with an Event Bus
Regrese a la consola EventBridge.
Seleccionar fuentes de eventos de Partner en el panel de navegación.
En la tabla Partner event sources, encuentra y selecciona la fuente del activador Pending, luego haz clic en Associate with event bus.
En la pantalla Associate with event bus, define los permisos de acceso requeridos para otras cuentas y organizaciones, luego haz clic en Associate.
Después de confirmar la asociación, el estado de la fuente del evento activador cambia de Pending a Active, y el nombre del bus de eventos se actualiza para que coincida con el nombre de la fuente del evento. Ahora puedes crear reglas que se activen por eventos de esa fuente de eventos de socio.
Para más información, consulta Crear una regla que se active en un evento de socio SaaS.
Custom Error Handling
Nota
Only Database Triggers Support Custom Error Handlers
Actualmente, sólo los activadores de base de datos admiten el manejo de errores personalizados. En este momento, los activadores de autenticación y los activadores programados no admiten el manejo de errores personalizados.
Puedes crear un controlador de errores para que se ejecute ante una falla de un activador cuando el reintento no tenga éxito. El manejo personalizado de errores permite determinar si un error de AWS EventBridge es lo suficientemente crítico como para suspender el activador, o si es aceptable ignorar el error y continuar procesando otros eventos.
Para más información sobre los activadores de base de datos suspendidos, consulta Triggers suspendidos.
Create a New Custom Error Handler
Puedes crear un nuevo gestor de errores en la Interfaz de Usuario de Atlas, usando la CLI de App Services, o a través de la App Services Admin API.
Este procedimiento te guía a través de cómo crear la nueva función directamente en la página Create a Trigger.
También puedes crear la Function desde la página Functions. Para obtener más información sobre cómo definir Funciones en Atlas, consulta Definir una Función.

Write the Function Code
En la Function sección, escribe el código JavaScript directamente en el editor de funciones. Este editor contiene una función predeterminada que puedes editar según sea necesario. Para obtener más información sobre la creación de funciones, consulta la documentación de funciones.
Probar la función
En la pestaña Testing Console que se encuentra debajo del editor de la Función, puedes probar la Función introduciendo valores de ejemplo en los parámetros error y changeEvent, como se muestra en los comentarios de la consola de pruebas.
Para obtener más información sobre estos parámetros, consulta la sección Parámetros del Gestor de Errores en esta página.
Click Run to run the test.
Puedes actualizar la configuración de tu disparador con un controlador de errores mediante la CLI de App Services. Para obtener más información, consulta el procedimiento "Actualizar una aplicación".
Autenticar a un usuario de MongoDB Atlas
Utilice su clave API de administración de MongoDB Atlas para iniciar sesión en la CLI de App Services:
appservices login --api-key="<API KEY>" --private-api-key="<PRIVATE KEY>"
Extraiga los últimos archivos de configuración de su aplicación
Ejecute el siguiente comando para obtener una copia local de sus archivos de configuración:
appservices pull --remote=<App ID>
De forma predeterminada, el comando extrae los archivos al directorio de trabajo actual. Puede especificar una ruta de directorio con el indicador opcional --local.
Write the Error Handler
Sigue los pasos en Definir una función para escribir tu código fuente del manejador de errores y tu archivo de configuración.
Consulta el siguiente controlador de errores de la plantilla como ejemplo:
exports = async function(error, changeEvent) { // This sample function will log additional details if the error is not // a DOCUMENT_TOO_LARGE error if (error.code === 'DOCUMENT_TOO_LARGE') { console.log('Document too large error'); // Comment out the line below in order to skip this event and not suspend the Trigger throw new Error('Encountered error: ${error.code}'); } console.log('Error sending event to EventBridge'); console.log('DB: ${changeEvent.ns.db}'); console.log('Collection: ${changeEvent.ns.coll}'); console.log('Operation type: ${changeEvent.operationType}'); // Throw an error in your Function to suspend the Trigger // and stop processing additional events throw new Error('Encountered error: ${error.message}'); };
Para más información sobre la creación de funciones, consulta Funciones.
Agregue el controlador de errores a la configuración de su disparador
Agregue un atributo error_handler a su archivo de configuración de disparador en la carpeta Triggers.
El archivo de configuración del activador debe parecerse al siguiente:
{ "name": "...", "type": "DATABASE", "event_processors": { "AWS_EVENTBRIDGE": { "config": { "account_id": "<AWS Account ID>", "region": "<AWS Region>", "extended_json_enabled": <boolean> } } }, "error_handler": { "config": { "enabled": <boolean>, "function_name": "<Error Handler Function Name>" } } }
Para obtener más información, consulte Archivos de configuración de activadores.
Implementar sus cambios
Ejecute el siguiente comando para implementar sus cambios:
appservices push
Nota
Este procedimiento hace referencia a los puntos finales de la API de App Services Admin. No usa los puntos de conexión de la API de Administración de Atlas.
Autenticar a un usuario de MongoDB Atlas
Llama al endpoint de Inicio de sesión con tu par de claves API de Administración de MongoDB Atlas:
curl -X POST \ https://services.cloud.mongodb.com/api/admin/v3.0/auth/providers/mongodb-cloud/login \ -H 'Content-Type: application/json' \ -H 'Accept: application/json' \ -d '{ "username": "<Public API Key>", "apiKey": "<Private API Key>" }'
If authentication succeeds, the response body contains a JSON object with an access_token value:
{ "access_token": "<access_token>", "refresh_token": "<refresh_token>", "user_id": "<user_id>", "device_id": "<device_id>" }
El access_token otorga acceso a la API de administración de App Services. Debes incluirlo como un token Bearer en el encabezado Authorization para todas las solicitudes de la App Services Admin API.
Create a Deployment Draft (Optional)
A draft represents a group of application changes that you can deploy or discard as a single unit. If you don't create a draft, updates automatically deploy individually.
To create a draft, send a POST request with no body to the Create a Deployment Draft endpoint:
curl -X POST 'https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/drafts' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer <access_token>'
Crear la función de gestión de errores
Cree la función para gestionar errores ante la falla de un activador de AWS EventBridge a través de una solicitud POST al Crear una nueva Función endpoint.
curl -X POST \ https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/functions \ -H 'Authorization: Bearer <access_token>' \ -d '{ "name": "string", "private": true, "source": "string", "run_as_system": true }'
Create the AWS EventBridge Trigger
Create the AWS EventBridge Trigger with error handling enabled via a POST request to the Create a Trigger endpoint.
curl -X POST \ https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/triggers \ -H 'Authorization: Bearer <access_token>' \ -d '{ "name": "string", "type": "DATABASE", "config": { "service_id": "string", "database": "string", "collection": "string", "operation_types": { "string" }, "match": , "full_document": false, "full_document_before_change": false, "unordered": true }, "event_processors": { "AWS_EVENTBRIDGE": { "account_id": "string", "region": "string", "extended_json_enabled": false }, }, "error_handler": { "enabled": true, "function_id": "string" } }'
Implementar sus cambios
Si creó un borrador, puede implementar todos los cambios en el borrador enviando una POST solicitud sin cuerpo al punto final Implementar un borrador de implementación.
Si no creaste un borrador como primer paso, las solicitudes individuales de función y activador se implementan automáticamente.
curl -X POST \ 'https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/drafts/{draftId}/deployment' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer <access_token>' \
Error Handler Parameters
The default error handler has two parameters: error and changeEvent.
error
Tiene los siguientes dos atributos:
code: El código de la solicitud put de EventBridge con error. Para obtener una lista de los códigos de error utilizados por el manejador de errores, consulta la sección Códigos de error en esta página.message: El mensaje de error no filtrado de una solicitud fallida de EventBridge put.
changeEvent
The requested change to your data made by EventBridge. For more information on types of change events and their configurations, see Change Event Types.
Códigos de error
Si se recibió un error de EventBridge, el procesador de eventos analizará el error como DOCUMENT_TOO_LARGE o OTHER. Este error analizado se pasa a la función del manejador de errores a través del parámetro error.
DOCUMENT_TOO_LARGE
Si la entrada de un evento de activación de EventBridge supera los 256 KB, EventBridge generará un error. El error contendrá:
código de estado: 400 y
total size of the entries in the request is over the limit.Código de estado:, 413 que indica una carga útil demasiado grande.
Para obtener más información sobre cómo reducir el tamaño de entrada, consulta Optimización del rendimiento.
OTHER
The default bucket for all other errors.
Tip
Optimiza el manejo de errores para los errores con código OTHER
You can make special error handling cases for your most common error messages to optimize your error handling for errors with an OTHER code. To determine which errors need special cases, we recommended keeping track of the most common error messages you receive in error.message.
Error Handler Logs
You can view Trigger Error Handler logs for your EventBridge Trigger error handler in the application logs.
Desde la página Triggers de la interfaz de usuario de Atlas, selecciona la pestaña Logs.
Todos los registros se muestran por defecto. Para ver solo los registros del gestor de errores, haz clic en el botón Show errors only.
Pasa el valor trigger_error_handler a la bandera --type para ver todos los registros del manejador de errores.
appservices logs list --type=trigger_error_handler
Nota
Este procedimiento hace referencia a los puntos finales de la API de App Services Admin. No usa los puntos de conexión de la API de Administración de Atlas.
Recupere TRIGGER_ERROR_HANDLER registros de tipo a través de una GET solicitud al punto final Recuperar registros de servicios de aplicaciones:
curl -X GET 'https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/logs' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer <access_token>' -d '{ "type": "TRIGGER_ERROR_HANDLER" }'
Para obtener más información sobre cómo ver los registros de aplicaciones, consulte Ver registros de aplicaciones.
Example Event
El siguiente objeto configura un activador para enviar eventos a AWS EventBridge y gestionar errores:
"event_processors": { "AWS_EVENTBRIDGE": { "config": { "account_id": "012345678901", "region": "us-east-1" } } }, "error_handler": { "config": { "enabled": true, "function_name": "myErrorHandler.js" } }
Optimización del rendimiento
Las entradas individuales para un evento de EventBridge activador deben ser menores de 256 KB.
Para obtener más información, consulte la Documentación de AWS para calcular el tamaño de entrada de eventos de Amazon PutEvents. Cuando se utilizan activadores de base de datos, la expresión de proyecto puede incluir solo los campos especificados, lo que reduce el tamaño del documento antes de enviar mensajes a EventBridge. Para obtener más detalles sobre la Expresión de Proyecto, consulta la documentación de Expresión de Proyecto en activadores de base de datos.
