Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Enviar eventos de activadores a AWS EventBridge

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.

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.

1

Para enviar eventos de activador a AWS EventBridge, necesitas el siguiente: AWS account ID de la cuenta que debe recibir los eventos.

  1. Abra la consola de Amazon EventBridge y Partner event sources haga clic en en el menú de navegación.

  2. Busca la fuente del evento de socio MongoDB y luego haz clic en Set up.

  3. 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.

2

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:

  1. Selecciona EventBridge como el tipo de evento.

  2. Pega el AWS Account ID que copiaste de EventBridge.

  3. 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.

  4. (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.

    Los cuadros de entrada de EventBridge en la configuración del disparador.
    haga clic para ampliar
  5. Para 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.

  1. 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>"
  2. 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.

  3. Crea un archivo de configuración de activador en tu directorio /triggers local. Omitir el campo function_name y definir un procesador de eventos AWS_EVENTBRIDGE.

  4. Establece el campo account_id en el AWS Account ID que copiaste de EventBridge.

  5. Configure el campo region en 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.

  6. To enable Extended JSON, set the extended_json_enabled field to true.

    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.

  7. (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>
}
}
}
}
3

Regrese a la consola EventBridge.

  1. Seleccionar fuentes de eventos de Partner en el panel de navegación.

  2. En la tabla Partner event sources, encuentra y selecciona la fuente del activador Pending, luego haz clic en Associate with event bus.

  3. 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.

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.

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.

The EventBridge custom error handling configuration in the UI.
1

Desde la sección Configure Error Function de la página Create a Trigger, seleccione + NewFunction.

You can also select an existing Function, if one is already defined, from the dropdown.

2

Introduzca un nombre de identificación único para la función en el campo Name. Este nombre debe ser distinto al de las demás funciones de la aplicación.

3

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.

4

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.

5

Once you are satisfied with the custom error handler, click Save.

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".

1

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>"
2

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.

3

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:

<functionName>.js
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.

4

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:

<triggerName>.json
{
"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.

5

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.

1

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.

Tip

2

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>'
3

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
}'
4

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"
}
}'
5

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>' \

The default error handler has two parameters: error and changeEvent.

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.

The requested change to your data made by EventBridge. For more information on types of change events and their configurations, see Change Event Types.

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.

Si la entrada de un evento de activación de EventBridge supera los 256 KB, EventBridge generará un error. El error contendrá:

Para obtener más información sobre cómo reducir el tamaño de entrada, consulta Optimización del rendimiento.

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.

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.

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"
}
}

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.

Volver

Desactivar un activador

En esta página