Menu Docs
Página inicial do Docs
/ /
Serviços Atlas App

Arquivos de configuração do trigger

Nesta página

  • Configuração geral
  • Gatilhos de banco de dados
  • Gatilhos de autenticação
  • Gatilhos programados

Observação

Esta página descreve um formato de arquivo de configuração legado. Você só deve usar essas informações se estiver usando o realm-cli obsoleto.

Todos os arquivos de configuração que você extrai com o App Services CLI ou exporta da UI utilizam a versão de configuração mais recente. Para obter informações detalhadas sobre o formato do arquivo de configuração atual, consulte Configuração do aplicativo.

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

Todos os Atlas Triggers estão em conformidade com um esquema base com variações específicas, dependendo do tipo de trigger. Os seguintes campos existem em todos os arquivos de configuração do trigger:

triggers/<trigger name>.json
{
"name": "<Trigger Name>",
"type": "<Trigger Type>",
"config": {},
"function_name": "<Trigger Function Name>",
"disabled": <Boolean>
}
Campo
Descrição
name
String
O nome do trigger. Pode ter no máximo 64 caracteres e só pode conter letras, números, sublinhados e hífens ASCII.
type
String

O tipo de trigger. O valor deste campo determina o esquema exato do arquivo de configuração.

Opções válidas:

  • "DATABASE"

  • "AUTHENTICATION"

  • "SCHEDULED"

config
Document

Um documento com campos que são mapeados para opções de configuração adicionais para o trigger. Os campos de configuração exatos dependem do trigger type:

function_name
String
O nome da Função de Realm que o trigger executa sempre que é disparado.
event_processors
Document

Um documento que configura o trigger para enviar eventos para processadores de eventos externos sempre que ele é disparado. Não é possível usar com function_name.

Para obter mais informações, consulte Enviar trigger de evento para o Amazon Web Services Eventbridge.

disabled
Boolean
Se true, o trigger não escutará nenhum evento e não disparará.

As configurações de Database Tools estão em conformidade com o esquema de trigger base com opções de configuração adicionais que especificam qual collection observar e quando acionar o trigger. Os seguintes campo existem nos arquivos de configuração do trigger do Database Tools:

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
Descrição
config.service_name
String
O nome do conjunto de dados MongoDB que contém a collection assistida. Você não pode definir um Database Tools em uma instância sem servidor ou instância do banco de dados federado.
config.database
String
O nome do MongoDB database que contém a collection assistida.
config.collection
String
O nome da collection que o trigger assiste.
config.operation_types
String[]

Uma lista de um ou mais tipos de operação do reconhecimento de data center que fazem o trigger disparar.

Tipos de operações válidos:

  • "INSERT"

  • "UPDATE"

  • "REPLACE"

  • "DELETE"

Dica

As operações de atualização executadas a partir do MongoDB Compass ou do MongoDB Atlas Data Explorer substituem completamente o documento anterior. Como resultado, as operações de atualização desses clientes gerarão REPLACE eventos de alteração em vez de UPDATE eventos.

config.full_document
Boolean

Se true, UPDATE eventos de alteração incluirão a versão confirmada majoritária mais recente do documento modificado depois que a alteração foi aplicada no campo fullDocument .

Observação

Independentemente desta configuração:

  • INSERT e REPLACE eventos sempre incluem o campo fullDocument .

  • DELETE eventos nunca incluem o campo fullDocument .

config.full_document_before_change
Boolean

Se true, os eventos de alteração incluem uma cópia do documento modificado imediatamente antes da alteração ser aplicada no campo fullDocumentBeforeChange . Todos os eventos de alteração, exceto os eventos INSERT , incluem a pré-imagem do documento.

Importante

Configurações de pré-imagem em nível de coleção

As pré-imagens de documentos usam informações adicionais armazenadas no oplog. Os dados extras podem ter implicações de desempenho para alguns aplicativos.

Depois de habilitar as pré-imagens de documento para qualquer trigger em uma determinada collection, essa collection incluirá dados de pré-imagem no oplog e outros Atlas Triggers na collection poderão usar pré-imagens sem sobrecarga adicional.

Você pode desativar as pré-imagens de documentos por trigger para excluir a pré-imagem de eventos de alteração. Independentemente das configurações de nível de trigger, as entradas de oplog de uma collection continuarão a incluir dados de pré-imagem, a menos que você desative explicitamente as pré-imagens para a collection.

Para obter mais informações, consulte Pré-imagens de documentos.

config.tolerate_resume_errors
Boolean

Se true, o trigger será retomado automaticamente se o token necessário para processar os eventos do change stream não for encontrado.

Se ativado, quando o token de retomada desse trigger não puder ser encontrado no oplog do cluster, o trigger retomará automaticamente os eventos de processamento no próximo evento relevante de change streams. Todos os eventos de change streams, desde quando o trigger foi suspenso até que o trigger retome a execução, não têm o trigger acionado para eles.

Para obter mais informações sobre como retomar Atlas Triggers suspensos, consulte Atlas Triggers suspensos.

config.unordered
Boolean

Se true, indica que o pedido de evento está desabilitado para esse trigger.

Se a ordenação de eventos estiver habilitada, múltiplas execuções desse trigger ocorrerão sequencialmente com base nos carimbos de data/hora dos eventos de alteração. Se a ordenação de eventos estiver desabilitada, múltiplas execuções desse trigger ocorrerão de forma independente.

Dica

Otimização de desempenho

Desabilite o reconhecimento de data center de eventos para melhorar o desempenho dos Atlas Triggers que respondem a operações de reconhecimento de data center em massa. Saiba mais.

config.match
Document

Um documento de expressão $match que o App Services usa para filtrar quais eventos de alteração causam o acionamento do trigger. O trigger avalia todos os objetos de evento de alteração que recebe em relação a essa expressão de correspondência e só é executado se a expressão for avaliada como true para um determinado evento de alteração.

Observação

Usar notação de ponto para campos incorporados

O MongoDB executa uma correspondência de igualdade total para documentos incorporados em uma expressão de correspondência. Se quiser corresponder a um campo específico em um documento incorporado, consulte o campo diretamente usando anotação de ponto. Para obter mais informações, consulte Query sobre documentos incorporados no manual do servidor MongoDB.

Dica

Otimização de desempenho

Limite o número de campos que o trigger processa usando uma expressão $match . Saiba mais.

config.project
Document

Uma expressão $project que seleciona um subconjunto de campos de cada evento no fluxo de alteração. Você pode usar isso para otimizar a execução do trigger.

A expressão é um objeto que mapeia o nome dos campos no evento de alteração para um 0, que exclui o campo, ou um 1, que o inclui. Uma expressão pode ter valores de 0 ou 1, mas não os dois juntos. Isso divide as projeções em duas categorias – inclusivas e exclusivas:

  • Uma expressão de projeto inclusiva especifica campos a serem incluídos em cada documento de evento de alteração. A expressão é um objeto que mapeia o nome dos campos para incluir em um 1. Se você não incluir um campo, ele não será incluído no evento de alteração projetado.

    Exemplo

    A seguinte projeção inclui somente os campos _id e fullDocument:

    {
    _id: 1,
    fullDocument: 1
    }
  • Uma expressão de projeto exclusiva especifica os campos a serem excluídos de cada documento de evento de alteração. A expressão é um objeto que mapeia o nome dos campos para incluir em um 0. Se você não excluir um campo, ele será incluído no evento de alteração projetado.

    Exemplo

    A seguinte projeção exclui os campos _id e fullDocument:

    {
    _id: 0,
    fullDocument: 0
    }

    Observação

    Você não pode excluir o campo operation_type com uma projeção. Isso garante que o trigger sempre possa verificar se deve ser executado para o tipo de operação de um determinado evento.

As configurações do trigger de autenticação estão em conformidade com o esquema básico do trigger, com opções de configuração adicionais que especificam quais provedores de autenticação devem ser observados e quando acionar o trigger. Os seguintes campo existem em arquivos de configuração do trigger de autenticação :

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
Descrição
config.operation_type
String

O tipo de operação de autenticação que faz com que o trigger seja acionado.

Tipos de operações válidos:

  • "LOGIN"

  • "CREATE"

  • "DELETE"

config.providers
String[]

Uma lista de tipos de provedor de autenticação que o trigger assiste.

Tipos de provedor válidos:

  • "anon-user"

  • "local-userpass"

  • "api-key"

  • "custom-token"

  • "custom-function"

  • "oauth2-facebook"

  • "oauth2-google"

  • "oauth2-apple"

As configurações de trigger agendado estão em conformidade com o esquema de trigger base com opções de configuração adicionais que especificam a programação na qual o trigger é acionado. Os seguintes campo existem em arquivos de configuração de trigger agendado :

triggers/<trigger name>.json
{
"name": "<Trigger Name>",
"type": "SCHEDULED",
"config": {
"schedule": "<CRON expression>"
},
"function_name": "<Trigger Function Name>",
"disabled": <Boolean>
}
Campo
Descrição
config.schedule
String
A expressão CRON que agenda a execução do trigger.

Próximo

O que são os Serviços de Aplicativo Atlas?