Docs Menu
Docs Home
/ /
Servicios de aplicaciones Atlas

Archivos de configuración de disparadores

Nota

Esta página describe un formato de archivo de configuración heredado. Solo debe usar esta información si está usando el formato obsoleto. realm-cli.

Cualquier archivo de configuración que extraiga con la CLI de App Services o exporte desde la interfaz de usuario utiliza la versión más reciente. Para obtener información detallada sobre el formato actual de los archivos de configuración, consulte Configuración de la aplicación.

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>",
"config": {},
"function_name": "<Trigger Function Name>",
"disabled": <Boolean>
}
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"

config
Document

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

function_name
String

El nombre de la función Atlas que el disparador ejecuta cada vez que se activa.

event_processors
Document

Un documento que configura el activador para enviar eventos a procesadores de eventos externos cada vez que se activa. No se puede usar con function_name.

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

disabled
Boolean

Si es true, el disparador no escuchará ningún evento y no se activará.

Las configuraciones de los disparadores de la base de datos se ajustan al esquema base de disparadores, con opciones de configuración adicionales que especifican qué colección supervisar y cuándo activar el disparador. Los archivos de configuración de los disparadores de la base de datos contienen los siguientes campos:

triggers/<trigger name>.json
{
"name": "<Trigger Name>",
"type": "DATABASE",
"config": {
"service_name": "<MongoDB Service Name>",
"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> },
"project": { <Projection Filter> },
},
"function_name": "<Trigger Function Name>",
"disabled": <Boolean>
}
Campo
Descripción
config.service_name
String

El nombre 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:

  • "INSERT"

  • "UPDATE"

  • "REPLACE"

  • "DELETE"

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:

  • INSERT y los eventos REPLACE siempre incluyen el campo fullDocument.

  • DELETE Los eventos 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
Document

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.project
Document

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.

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.

Next

¿Qué son los servicios de aplicación Atlas?

En esta página