禁用触发器
在此页面上
触发器可能会进入 suspended 状态,以响应阻止trigger变更流继续的事件,例如网络中断或根本的集群更改。 当trigger进入挂起状态时,它将被禁用。 它不接收变更事件,也不会触发。
注意
事件trigger暂停或失败, Atlas会向项目所有者发送电子邮件,提醒他们注意该问题。
手动禁用trigger
您可以从trigger Atlas用户界面或通过使用 导入应用程序目录来手动禁用活动App Services CLI 。
导航至Triggers页面
如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含项目的组织。
如果尚未显示,请从导航栏的 Projects 菜单中选择您的项目。
在侧边栏中,单击 Services 标题下的 Triggers。
显示触发器页面。
从列出的触发器中,找到要禁用的trigger 。
切换Enabled设置将其禁用,然后单击Save 。
对MongoDB Atlas用户进行身份验证:
使用您的 MongoDB Atlas Administration API密钥登录到App Services CLI:
appservices login --api-key="<API KEY>" --private-api-key="<PRIVATE KEY>" 拉取应用的最新配置文件:
运行以下命令以获取配置文件的本地副本:
appservices pull --remote=<App ID> 默认,该命令会将文件提取到当前工作目录中。 您可以使用可选的
--local
标志指定目录路径。验证trigger配置文件:
如果导出了应用程序的新副本,它应该已经包含已暂停trigger的最新配置文件。 您可以通过在
/triggers
目录中查找与 同名的trigger 配置文件trigger 来确认配置文件是否存在。禁用trigger :
验证trigger配置文件存在后,将名为
"disabled"
且值为true
的字段添加到trigger JSON定义的顶层:{ "id": "6142146e2f052a39d38e1605", "name": "steve", "type": "SCHEDULED", "config": { "schedule": "*/1 * * * *" }, "function_name": "myFunc", "disabled": true } 部署更改:
运行以下命令以部署更改:
appservices push
从快照恢复
从快照恢复数据库时,将重新启用已禁用或暂停的任何trigger 。 trigger不会为已处理的事件触发。 有关从快照恢复的更多信息,请参阅恢复集群。
考虑以下情况:
您的数据库trigger已禁用或暂停。
禁用trigger时会添加新文档。
您可以将数据库从快照恢复到添加新文档之前的时间。
Atlas重新启动已禁用的数据库trigger 。
重新启动的trigger获取所有新添加的文档,并为每个文档触发。 但是,对于已处理的事件,它不会再次触发。
注意
如果以前启用的数据库trigger 在快照恢复期间正在运行,您将在 用户界面的编辑trigger Atlas部分看到错误,因为trigger 在恢复进程中无法连接到Atlas 集群。快照恢复完成后,错误消失, trigger继续正常执行。