trigger配置文件
app/ └── triggers/ └── <trigger name>.json
常规配置
所有Atlas Triggers都符合具有特定变体的基本模式,具体取决于trigger类型。所有trigger配置文件中都存在以下字段:
{ "name": "<Trigger Name>", "type": "<Trigger Type>", "disabled": <Boolean>, "config": {}, "event_processors": { "<Type of Event Processor>": { "config": {} } } }
字段 | 说明 |
---|---|
name string | trigger名称。长度最多为 64 个字符,并且只能包含 ASCII 字母、数字、下划线和连字符。 |
type string | trigger类型。该字段的值决定了确切的配置文件模式。 有效选项:
|
disabled boolean | 默认为 false 。 如果为true ,trigger将不会侦听任何事件,也不会触发。 |
config object | |
event_processors object | 一个文档,用于配置trigger以在触发时将事件发送到事件处理器。 有效选项:
有关函数的更多信息,请参阅Realm 函数。 有关 AWS EventBridge 的更多信息,请参阅向 AWS EventBridge 发送触发事件。 |
event_processors.config object | 包含映射到事件处理器其他配置选项的字段的文档。确切的配置字段取决于事件处理器类型: |
数据库触发器
数据库触发器配置符合基本trigger模式,并带有附加配置选项,这些选项指定要监视的collection以及何时触发trigger。
数据库触发器配置文件中存在以下字段。根据事件处理器类型,有两种可能的配置:
FUNCTION
AWS_EVENTBRIDGE
带有函数事件处理器的数据库触发器
{ "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>" } } } }
使用 AWS EventBridge 事件处理器的数据库触发器
{ "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>" } } }
字段 | 说明 | ||||||||
---|---|---|---|---|---|---|---|---|---|
config.service_id string | |||||||||
config.database string | 包含监视collection的 MongoDB database 的名称。 | ||||||||
config.collection string | trigger监视的collection的名称。 | ||||||||
config.operation_types string[] | 导致trigger触发的一个或多个数据库操作类型的列表。 所有Atlas Triggers的有效操作类型:
数据库和部署触发器的有效操作类型:
仅适用于部署Atlas Triggers的有效操作类型:
提示从 MongoDB Compass 或 MongoDB Atlas 数据浏览器执行的更新操作会完全替换之前的文档。 因此,这些客户端的更新操作将生成 | ||||||||
config.full_document boolean | |||||||||
config.full_document_before_change boolean | 如果 重要集合级原像设置文档原像使用存储在 oplog 中的额外信息。 额外的数据可能会对某些应用的性能产生影响。 为给定集合上的任何触发器启用文档原像后,该集合将在 oplog 中包含原像数据,并且该集合上的其他触发器可以使用原像,而不会产生额外开销。 您可以在每个触发器的基础上禁用文档原像,以将原像从变更事件中排除。 无论触发器级别设置如何,collection的 oplog 条目将继续包含原像数据,除非您明确禁用collection的原像。 有关更多信息,请参阅文档原像。 | ||||||||
config.tolerate_resume_errors boolean | 如果为 如果启用,则当在集群的 oplog 中找不到此触发器的恢复令牌时,触发器会在下一个相关的变更流事件中自动恢复处理事件。从触发器暂停到触发器恢复执行的所有变更流事件都不会触发触发器。 有关恢复暂停的Atlas Triggers的更多信息,请参阅暂停的Atlas Triggers。 | ||||||||
config.unordered boolean | 如果 如果启用了事件排序,此触发器的多次执行操作将根据更改事件的时间戳按顺序进行。如果禁用了事件排序,该触发器的多次执行操作将独立进行。 | ||||||||
config.match object | |||||||||
config.maximum_throughput boolean | |||||||||
config.skip_catchup_events boolean | 默认为 false 。 如果为true ,则在禁用触发器后启用触发器不会调用禁用触发器时发生的事件。 | ||||||||
config.project object | 一个$project表达式,用于从变更流中的每个事件中选择字段的子集。 您可以使用它来优化trigger的执行。 表达式是一个对象,可以将更改事件中的字段名称映射到
| ||||||||
event_processors.config.account_id string | Amazon Web Services 帐户 ID。有关如何查找帐户 ID 的更多信息,请参阅设置 MongoDB 合作伙伴事件源。 | ||||||||
event_processors.config.region string | 一个 Amazon Web Services 地区。 | ||||||||
event_processors.config.extended_json_enabled boolean |
Atlas Triggers将事件对象中的BSON types转换为标准JSON类型。 要保留 BSON 类型信息,您可以将事件对象序列化为扩展 JSON 格式。 扩展 JSON 保留了类型信息,但牺牲了可读性和互操作性。 | ||||||||
error_handler.config.enabled boolean | 如果为 true ,则为 AWS EventBridge 触发器启用错误处理。 有关配置错误处理的更多信息,请参阅自定义错误处理。 | ||||||||
error_handler.config.function_name string | 当 AWS EventBridge 触发器失败且无法成功重试时调用的错误处理程序函数的名称。 |
身份验证触发器
身份验证触发器配置符合基本trigger模式,并带有附加配置选项,这些选项指定要监视的身份验证提供商以及何时触发trigger。在身份验证触发器配置文件中存在以下字段:
{ "name": "<Trigger Name>", "type": "AUTHENTICATION", "config": { "operation_type": ["<Operation Type>", ...], "providers": ["<Provider Type>", ...], }, "function_name": "<Trigger Function Name>", "disabled": <Boolean> }
定时触发器
定时触发器配置符合基本触发器模式,附带指定触发器触发计划的附加配置选项。 定时触发器配置文件中存在以下字段:
{ "name": "<Trigger Name>", "type": "SCHEDULED", "config": { "schedule": "<CRON expression>" }, "function_name": "<Trigger Function Name>", "disabled": <Boolean> }
字段 | 说明 |
---|---|
config.schedule string | 安排触发器执行的CRON 表达式。 |