Docs Menu
Docs Home
/ /
Archivos de configuración de la aplicación

Archivos de configuración de disparadores

app/
└── triggers/
└── <trigger name>.json

Todos los activadores se ajustan a un esquema base con variaciones específicas según el tipo de activador. Los siguientes campos existen en todos los archivos de configuración de activadores:

triggers/<trigger name>.json
{
"name": "<Trigger Name>",
"type": "<Trigger Type>",
"disabled": <Boolean>,
"config": {},
"event_processors": {
"<Type of Event Processor>": {
"config": {}
}
}
}
Campo
Descripción
name
string

El nombre del disparador. Puede tener como máximo 64 caracteres y solo puede contener letras ASCII, números, guiones bajos y guiones.

type
string

El tipo de activador. El valor de este campo determina el esquema exacto del archivo de configuración.

Opciones válidas:

  • "DATABASE"

  • "AUTHENTICATION"

  • "SCHEDULED"

disabled
boolean

El valor predeterminado es false. Si es true, el disparador no detectará ningún evento y no se activará.

config
object

Un documento con campos que asignan opciones de configuración adicionales para el disparador. Los campos de configuración exactos dependen del disparador type:

event_processors
object

Un documento que configura el disparador para enviar eventos a un procesador de eventos cada vez que se activa.

Opciones válidas:

  • "FUNCIÓN"

  • "AWS_EVENTBRIDGE"

Para obtener más información sobre las funciones, consulte Funciones de Atlas.

Para obtener más información sobre AWS EventBridge, consulte Enviar eventos desencadenadores a AWS EventBridge.

event_processors.config
object

Un documento con campos que asignan opciones de configuración adicionales para el procesador de eventos. Los campos de configuración exactos dependen del tipo de procesador de eventos:

Las configuraciones de activadores de base de datos se ajustan al esquema base de activadores con opciones de configuración adicionales que especifican qué colección vigilar y cuándo activar el activador.

Los siguientes campos existen en los archivos de configuración de los disparadores de la base de datos. Existen dos configuraciones posibles según el tipo de procesador de eventos:

  • FUNCTION

  • AWS_EVENTBRIDGE

Disparador de base de datos con un procesador de eventos de función

triggers/<trigger name>.json
{
"name": "<Trigger Name>",
"type": "DATABASE",
"disabled": <boolean>,
"config": {
"service_id": "<MongoDB Data Source Service ID>",
"database": "<Database Name>",
"collection": "<Collection Name>",
"operation_types": ["<Operation Type>", ...],
"full_document": <boolean>,
"full_document_before_change": <boolean>,
"tolerate_resume_errors": <boolean>,
"unordered": <boolean>,
"match": { <Match Filter> },
"maximum_throughput": <boolean>,
"skip_catchup_events": <boolean>,
"project": { <Projection Filter> },
},
"event_processors": {
"FUNCTION": {
"config": {
"function_name": "<Function Name>"
}
}
}
}

Disparador de base de datos con un procesador de eventos de AWS EventBridge

triggers/<trigger name>.json
{
"name": "<Trigger Name>",
"type": "DATABASE",
"disabled": <boolean>,
"config": {
"service_id": "<MongoDB Data Source Service ID>",
"database": "<Database Name>",
"collection": "<Collection Name>",
"operation_types": ["<Operation Type>", ...],
"full_document": <boolean>,
"full_document_before_change": <boolean>,
"tolerate_resume_errors": <boolean>,
"unordered": <boolean>,
"match": { <Match Filter> },
"maximum_throughput": <boolean>,
"skip_catchup_events": <boolean>,
"project": { <Projection Filter> },
},
"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>"
}
}
}
Campo
Descripción
config.service_id
string

El identificador único de la fuente de datos de MongoDB que contiene la colección supervisada. No se puede definir un disparador de base de datos en una instancia sin servidor ni en una instancia de base de datos federada.

config.database
string

El nombre de la base de datos MongoDB que contiene la colección observada.

config.collection
string

El nombre de la colección que vigila el disparador.

config.operation_types
string[]

Una lista de uno o más tipos de operaciones de base de datos que hacen que se active el disparador.

Tipos de operaciones válidos para todos los activadores:

  • "INSERT"

  • "UPDATE"

  • "REPLACE"

  • "DELETE"

Tipos de operaciones válidos para desencadenadores de implementación y base de datos:

  • "CREATE_COLLECTION"

  • "MODIFY_COLLECTION"

  • "RENAME_COLLECTION"

  • "SHARD_COLLECTION"

  • "DROP_COLLECTION"

  • "RESHARD_COLLECTION"

  • "REFINE_COLLECTION_SHARD_KEY"

  • "CREATE_INDEXES"

  • "DROP_INDEXES"

Tipos de operaciones válidos únicamente para activadores de implementación:

  • "DROP_DATABASE"

Tip

Las operaciones de actualización ejecutadas desde MongoDB Compass o MongoDB Atlas Data Explorer reemplazan completamente el documento anterior. Por lo tanto, las operaciones de actualización de estos clientes generarán REPLACE eventos de cambio en lugar de UPDATE.

config.full_document
boolean

Si,true UPDATE eventos de cambio incluyen la última versión mayoritariamente confirmada del documento modificado después de que se aplicó el cambio en el fullDocument campo.

Nota

Independientemente de esta configuración, los eventos INSERT y REPLACE siempre incluyen el campo ``fullDocument``. Los eventos DELETE nunca incluyen el campo fullDocument.

config.full_document_before_change
boolean

Si true es, los eventos de cambio incluyen una copia del documento modificado inmediatamente anterior a la aplicación del cambio en el fullDocumentBeforeChange campo. Todos los eventos de cambio, excepto,INSERT incluyen la preimagen del documento.

Importante

Configuración de preimagen a nivel de colección

Las preimágenes de documentos utilizan información adicional almacenada en el registro de operaciones. Estos datos adicionales pueden afectar el rendimiento de algunas aplicaciones.

Una vez que haya habilitado las preimágenes de documentos para cualquier activador en una colección determinada, esa colección incluirá datos de preimágenes en el registro de operaciones y otros activadores de la colección podrán usar preimágenes sin sobrecarga adicional.

Puede deshabilitar las preimágenes de documentos por desencadenador para excluirlas de los eventos de cambio. Independientemente de la configuración del desencadenador, las entradas del registro de operaciones de una colección seguirán incluyendo datos de preimágenes a menos que deshabilite explícitamente las preimágenes para la colección.

Para obtener más información, consulte Preimágenes de documentos.

config.tolerate_resume_errors
boolean

Si true, el activador se reanuda automáticamente si no se encuentra el token necesario para procesar los eventos del flujo de cambios.

Si está habilitado, cuando no se encuentra el token de reanudación de este disparador en el registro de operaciones del clúster, este reanuda automáticamente el procesamiento de eventos en el siguiente evento relevante del flujo de cambios. El disparador no activará ningún evento del flujo de cambios desde que se suspendió el disparador hasta que reanude su ejecución.

Para obtener más información sobre la reanudación de Activadores suspendidos, consulta Activadores suspendidos.

config.unordered
boolean

Si es true, indica que el orden de eventos está deshabilitado para este disparador.

Si la ordenación de eventos está habilitada, este disparador se ejecutará secuencialmente según las marcas de tiempo de los eventos de cambio. Si está deshabilitada, este disparador se ejecutará de forma independiente.

Tip

Optimización del rendimiento

Mejore el rendimiento de los disparadores que responden a operaciones masivas de la base de datos deshabilitando la ordenación de eventos. Más información.

config.match
object

Un documento de expresión $match que App Services utiliza para filtrar los eventos de cambio que activan el disparador. El disparador evalúa todos los objetos de evento de cambio que recibe con esta expresión de coincidencia y solo se ejecuta si la expresión da como true resultado para un evento de cambio determinado.

Nota

Usar notación de puntos para campos incrustados

MongoDB realiza una coincidencia de igualdad completa para los documentos incrustados en una expresión de coincidencia. Si desea que un campo específico coincida con un documento incrustado, consulte el campo directamente mediante la notación de puntos. Para más información, consulte Consulta en documentos incrustados en el manual del servidor MongoDB.

Tip

Optimización del rendimiento

Limite el número de campos que procesa el disparador mediante una expresión $match. Más información.

config.maximum_throughput
boolean

El valor predeterminado es. Si false true es, puede aumentar el rendimiento máximo más allá de 10 los,000 procesos simultáneos predeterminados. Para obtener más información, consulte Activadores para maximizar el rendimiento.

config.skip_catchup_events
boolean

El valor predeterminado es false. Si es true, al habilitar el disparador después de deshabilitarlo, no se invocarán los eventos que ocurrieron mientras estaba deshabilitado.

config.project
object

Una expresión $project que selecciona un subconjunto de campos de cada evento en el flujo de cambios. Puede usarla para optimizar la ejecución del disparador.

La expresión es un objeto que asigna el nombre de los campos del evento de cambio a 0, que excluye el campo, o a 1, que lo incluye. Una expresión puede tener valores de 0 o 1, pero no ambos a la vez. Esto divide las proyecciones en dos categorías: inclusivas y exclusivas:

  • Una expresión de proyecto inclusiva especifica los campos que se incluirán en cada documento de evento de cambio. La expresión es un objeto que asigna el nombre de los campos a un 1 valor. Si no se incluye un campo, este no se incluirá en el evento de cambio proyectado.

    Ejemplo

    La siguiente proyección incluye solo los campos _id y fullDocument:

    {
    _id: 1,
    fullDocument: 1
    }
  • Una expresión de proyecto exclusiva especifica los campos que se excluirán de cada documento de evento de cambio. La expresión es un objeto que asigna el nombre de los campos a incluir a 0 un. Si no se excluye un campo, este se incluye en el evento de cambio proyectado.

    Ejemplo

    La siguiente proyección excluye los campos _id y fullDocument:

    {
    _id: 0,
    fullDocument: 0
    }

    Nota

    No se puede excluir el campo operation_type con una proyección. Esto garantiza que el disparador siempre pueda comprobar si debe ejecutarse para el tipo de operación de un evento determinado.

event_processors.config.account_id
string

Un ID de cuenta de AWS. Para obtener más información sobre cómo encontrarlo, consulte Configurar la fuente de eventos de socio de MongoDB.

event_processors.config.region
string

Una región de AWS.

event_processors.config.extended_json_enabled
boolean

false Por defecto. Si es true, se habilita JSON extendido.

Los disparadores convierten los tipos BSON de los objetos de evento en tipos JSON estándar. Para conservar la información de tipo BSON, puede serializar los objetos de evento en formato JSON extendido. El JSON extendido conserva la información de tipo, a costa de la legibilidad y la interoperabilidad.

error_handler.config.enabled
boolean

Si true es, la gestión de errores está habilitada para el disparador de AWS EventBridge. Para obtener más información sobre la configuración de la gestión de errores, consulte Gestión de errores personalizada.

error_handler.config.function_name
string

El nombre de la función del controlador de errores que se invoca cuando el disparador de AWS EventBridge falla y no se puede volver a intentar con éxito.

Las configuraciones de los activadores de autenticación se ajustan al esquema base de activadores, con opciones de configuración adicionales que especifican qué proveedores de autenticación supervisar y cuándo activar el activador. Los archivos de configuración de los activadores de autenticación contienen los siguientes campos:

triggers/<trigger name>.json
{
"name": "<Trigger Name>",
"type": "AUTHENTICATION",
"config": {
"operation_type": ["<Operation Type>", ...],
"providers": ["<Provider Type>", ...],
},
"function_name": "<Trigger Function Name>",
"disabled": <Boolean>
}
Campo
Descripción
config.operation_type
string

El tipo de operación de autenticación que hace que se active el disparador.

Tipos de operaciones válidos:

  • "LOGIN"

  • "CREATE"

  • "DELETE"

config.providers
string[]

Una lista de tipos de proveedores de autenticación que el disparador supervisa.

Tipos de proveedores válidos:

  • "anon-user"

  • "local-userpass"

  • "api-key"

  • "custom-token"

  • "custom-function"

  • "oauth2-facebook"

  • "oauth2-google"

  • "oauth2-apple"

Las configuraciones de los disparadores programados se ajustan al esquema base de los disparadores, con opciones de configuración adicionales que especifican la programación de su activación. Los archivos de configuración de los disparadores programados contienen los siguientes campos:

triggers/<trigger name>.json
{
"name": "<Trigger Name>",
"type": "SCHEDULED",
"config": {
"schedule": "<CRON expression>"
},
"function_name": "<Trigger Function Name>",
"disabled": <Boolean>
}
Campo
Descripción
config.schedule
string

La expresión CRON que programa la ejecución del activador.

Volver

Atlas Device Sync

En esta página