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
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>",
"disabled": <Boolean>,
"config": {},
"event_processors": {
"<Type of Event Processor>": {
"config": {}
}
}
}
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"

disabled
boolean
Padrão é false. Se true, o trigger não escutará nenhum evento e não disparará.
config
object

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:

event_processors
object

Um documento que configura o trigger para enviar eventos para um processador de eventos sempre que ele é disparado.

Opções válidas:

  • "function"

  • "AWS_EventBRIDGE"

Para mais informações sobre Funções, consulte Função de Realm.

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

event_processors.config
object

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

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 campo existem em arquivos de configuração do trigger do Database Tools. Existem duas configurações possíveis dependendo do tipo de processador de eventos:

  • FUNCTION

  • AWS_EVENTBRIDGE

Database Tools com um processador de evento de função

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

Gatilho de banco de dados com um processador de eventos do 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
Descrição
config.service_id
string
O identificador exclusivo da fonte de dados MongoDB que contém a coleção assistida. Não é possível definir um trigger de banco de dados de dados em uma instância sem servidor ou instância do banco de dados 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 para todos os Atlas Triggers:

  • "INSERT"

  • "UPDATE"

  • "REPLACE"

  • "DELETE"

Tipos de operações válidas para Atlas Triggers de reconhecimento de data center e sistema:

  • "CREATE_COLLECTION"

  • "MODIFY_COLLECTION"

  • "RENAME_COLLECTION"

  • "SHARD_COLLECTION"

  • "DROP_COLLECTION"

  • "RESHARD_COLLECTION"

  • "REFINE_COLLECTION_SHARD_KEY"

  • "CREATE_INDEXES"

  • "DROP_INDEXES"

Tipos de operações válidos apenas para Atlas Triggers de implementação:

  • "DROP_DATABASE"

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, os eventos INSERT e REPLACE 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
object

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.maximum_throughput
boolean
Padrão é false. Se true, você pode aumentar a taxa de transferência máxima além dos 10.000 processos simultâneos padrão. Para obter mais informações, consulte Maximizar Atlas Triggers.
config.skip_catchup_events
boolean
Padrão é false. Se true, habilitar o trigger depois que ele foi desabilitado não invocará evento que ocorreram enquanto o trigger esteve desabilitado.
config.project
object

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.

event_processors.config.account_id
string
Um ID de conta Amazon Web Services. Para obter mais informações sobre como encontrar o ID da conta, consulte Configurar a origem do evento de parceiro do MongoDB.
event_processors.config.region
string
Uma região Amazon Web Services.
event_processors.config.extended_json_enabled
boolean

false por padrão. Se true, o JSON estendido está habilitado.

Os Atlas Triggers convertem os BSON types em objetos de evento em tipos JSON padrão. Para preservar informações sobre o tipo BSON, você pode serializar objetos de evento no formato JSON estendido . O JSON estendido preserva informações de tipo às custas de legibilidade e interoperabilidade.

error_handler.config.enabled
boolean
Se true, o tratamento de erros está habilitado para o trigger do Amazon Web Services Eventbridge. Para obter mais informações sobre como configurar o tratamento de erros, consulte Tratamento de erros personalizado.
error_handler.config.function_name
string
O nome da função do manipulador de erros invocada quando o trigger do Amazon Web Services Eventbridge falha e não pode ser repetido com êxito.

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.

Voltar

Device SyncAtlas