trigger を無効にする
trigger は、ネットワークの中断や基礎のクラスターへの変更など、trigger の変更ストリームの継続を妨げるイベントに応答して suspended状態になることがあります。 trigger が一時停止状態になると、無効になります。 変更イベントは受信されないため、起動しません。
注意
trigger が一時停止または失敗したイベント、Atlas はプロジェクトオーナーに問題を警告するメールを送信します。
trigger を手動で無効にする
Atlas UIから、または App Services CLI を使用してアプリケーションディレクトリをインポートすることで、アクティブな trigger を手動で無効にすることができます。
Triggersページに移動します
まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。
まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。
サイドバーで、 Services見出しの下のTriggersをクリックします。
[ Triggers]ページが表示されます。
リストされた trigger から、無効にする 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 の最新の構成ファイルがすでに含まれているはずです。 trigger と同じ名前のtrigger構成ファイルを
/triggers
ディレクトリで探すことで、構成ファイルが存在することを確認できます。trigger を無効にします。
trigger構成ファイルが存在することを確認した後、値
true
を持つ"disabled"
という名前のフィールドを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 クラスターに接続できないため、 UIのAtlas の編集 セクションにエラーが表示されます。スナップショットの復元が完了すると、エラーはなくなり、trigger は正常に実行され続けます。