Docs Menu
Docs Home
/ /
Atlas App Services

trigger 構成ファイル

項目一覧

  • 一般的な構成
  • データベース Triggers
  • 認証 Triggers
  • 予定されたTriggers

注意

このページでは、レガシー構成ファイル形式について説明します。 非推奨の realm-cliを使用している場合にのみ、この情報を使用する必要があります。

App Services CLI を使用してプルする構成ファイル、または UI からエクスポートする構成ファイルには、最新の構成バージョンが使用されます。 現在の構成ファイル形式の詳細については、 「アプリ構成」 を参照してください。

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

すべての trigger は、trigger の種類に応じて特定のバリエーションを持つ基本スキーマに準拠します。 次のフィールドはすべてのtrigger 構成ファイルに存在します。

triggers/<trigger name>.json
{
"name": "<Trigger Name>",
"type": "<Trigger Type>",
"config": {},
"function_name": "<Trigger Function Name>",
"disabled": <Boolean>
}
フィールド
説明
name
String
trigger の名前。 これは最大 64 文字の長さで、ASCII 文字、数字、アンダースコア、ハイフンのみを含めることができます。
type
String

trigger の種類。 このフィールドの値によって、正確な構成ファイル スキーマが決まります。

有効なオプション:

  • "DATABASE"

  • "AUTHENTICATION"

  • "SCHEDULED"

config
Document

trigger の追加構成オプションにマップされるフィールドを持つドキュメント。 具体的な構成フィールドは trigger typeによって異なります。

function_name
String
trigger が起動するたびに実行するAtlas Functionの名前。
event_processors
Document

起動するたびにイベントを外部イベント プロセッサに送信するように trigger を構成するドキュメント。 function_nameとは併用できません。

詳細については、「 に triggerイベントを送信する 」を参照してください。AWS Eventbridge

disabled
Boolean
trueの場合、trigger はイベントをリッスンせず、起動しません。

データベースtrigger構成は、監視するコレクションとtriggerをいつ起動するかを指定する追加の構成オプションを持つ基本triggerスキーマに準拠します。 データベースtrigger構成ファイルには、次のフィールドがあります。

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>
}
フィールド
説明
config.service_name
String
監視対象のコレクションを含むMongoDB データソースの名前。 サーバーレスインスタンス または フェデレーティッドデータベースインスタンス ではデータベース を定義できません。trigger
config.database
String
監視対象のコレクションを含む MongoDB database の名前。
config.collection
String
trigger が監視するコレクションの名前。
config.operation_types
String[]

trigger を起動させる 1 つ以上のデータベース操作タイプのリスト。

有効な操作のタイプ

  • "INSERT"

  • "UPDATE"

  • "REPLACE"

  • "DELETE"

Tip

MongoDB Compass または MongoDB Atlas Data Explorer から実行される更新操作は、前のドキュメントを完全に置き換えます。 その結果、これらのクライアントからの更新操作では、 UPDATEイベントではなくREPLACE変更イベントが生成されます。

config.full_document
Boolean

trueの場合、 変更イベントには、変更がUPDATE フィールドに適用された 後 に 、修正されたドキュメントの最新の 過半数がコミット したfullDocument バージョンが含まれます。

注意

この設定に関係なく、次のようになります。

  • INSERT およびREPLACEイベントには常にfullDocumentフィールドが含まれます。

  • DELETE イベントにはfullDocumentフィールドが含まれることはありません。

config.full_document_before_change
Boolean

trueの場合、変更イベントには、変更がfullDocumentBeforeChangeフィールドに適用される直前の変更されたドキュメントのコピーが含まれます。 INSERTイベントを除くすべての変更イベントには、ドキュメントのプレイメージが含まれます。

重要

コレクション レベルのプレイメージ設定

ドキュメントのプレイメージは、oplog に保存されている追加情報を使用します。 追加のデータは、一部のアプリのパフォーマンスに影響を与える可能性があります。

特定のコレクションの任意の trigger でドキュメントのプレイメージを有効にすると、そのコレクションの oplog にプレイメージ データが含まれ、コレクションの他の trigger は追加のオーバーヘッドのないプレイメージを使用できるようになります。

trigger ごとにドキュメントのプレイメージを無効にして、変更イベントからプレイメージを除外することができます。 trigger レベルの設定に関係なく、コレクションのプレイメージを明示的に無効にしない限り、コレクションの oplog エントリには引き続きプレイメージ データが含まれ続けます。

詳細については、「ドキュメントのプレイメージ 」を参照してください。

config.tolerate_resume_errors
Boolean

trueの場合、変更ストリーム イベントの処理に必要なトークンが見つからない場合には、trigger は自動的に再開されます。

有効な場合、この trigger の再開トークンがクラスターの oplog に見つからない場合、trigger は次の関連する変更ストリーム イベントでイベントの情報処理を自動的に再開します。trigger が一時停止されてから trigger が実行を再開するまでのすべての変更ストリーム イベントでは、trigger は起動しません。

一時停止された trigger の再開の詳細については、「 一時停止された trigger 」を参照してください

config.unordered
Boolean

trueの場合、 はこの trigger でイベント順序が無効になっていることを示します。

イベントの順序付けが有効になっている場合、この trigger は変更イベントのタイムスタンプに基づいて順番に複数回実行されます。イベントの順序付けが無効になっている場合、この trigger の複数回の実行は独立して発生します。

Tip

パフォーマンスの最適化

イベント順序を無効にすることで、データベースの一括操作に応答する Atlas Triggers のパフォーマンスを向上させます。 詳細はこちら。

config.match
Document

Atlas App Services が trigger の起動を引き起こす変更イベントをフィルタリングするために使用する$match式ドキュメント。 trigger は、受け取るすべての変更イベント オブジェクトをこのマッチ式に対して評価し、特定の変更イベントに対して式がtrueと評価された場合にのみ実行します。

注意

埋め込みフィールドにドット表記を使用する

MongoDB は、マッチ式内の埋め込みドキュメントに対して完全な等価一致を実行します。 埋め込みドキュメント内の特定のフィールドを一致させる場合は、ドット表記を使用してフィールドを直接参照します。 詳細については、MongoDB サーバー マニュアルの 「埋め込みドキュメントに対するクエリ」 を参照してください。

Tip

パフォーマンスの最適化

trigger$match 式を使用して、 処理するフィールドの数を制限します。詳細はこちら。

config.project
Document

変更ストリーム内の各イベントからフィールドのサブセットを選択する$project式。 これを使用して、 trigger の実行を最適化 できます。

この式は、変更イベント内のフィールド名を、フィールドを除外する(0)、またはフィールドを含める(1)のいずれかにマップするオブジェクトです。式には、0 または 1 のいずれかの値を指定できますが、両方を指定することはできません。これにより、プロジェクションは包括的と排他的の 2 つのカテゴリに分かれます。

  • 包括的なプロジェクト式は、各変更イベント ドキュメントに含めるフィールドを指定します。式は、含めるフィールドの名前を 1 にマッピングするオブジェクトです。フィールドを含めない場合、そのフィールドはプロジェクションされる変更イベントに含まれません。

    次のプロジェクションには、_id フィールドと fullDocument フィールドのみが含まれます。

    {
    _id: 1,
    fullDocument: 1
    }
  • 排他的なプロジェクト式は、各変更イベント ドキュメントから除外するフィールドを指定します。式は、含めるフィールドの名前を 0 にマッピングするオブジェクトです。フィールドを除外しない場合、そのフィールドはプロジェクションされる変更イベントに含められます。

    次のプロジェクションには、_id フィールドと fullDocument フィールドが除外されます。

    {
    _id: 0,
    fullDocument: 0
    }

    注意

    プロジェクションで operation_type フィールドを除外することはできません。これにより、trigger は、特定のイベントの操作タイプに対して実行する必要があるかどうかを常に確認できるようになります。

認証triggerの構成は、監視する認証プロバイダーとtriggerするタイミングを指定する追加の構成オプションを持つ基本triggerスキーマに準拠します。 認証trigger構成ファイルには、次のフィールドがあります。

triggers/<trigger name>.json
{
"name": "<Trigger Name>",
"type": "AUTHENTICATION",
"config": {
"operation_type": ["<Operation Type>", ...],
"providers": ["<Provider Type>", ...],
},
"function_name": "<Trigger Function Name>",
"disabled": <Boolean>
}
フィールド
説明
config.operation_type
String

trigger を起動させる認証操作の種類

有効な操作のタイプ

  • "LOGIN"

  • "CREATE"

  • "DELETE"

config.providers
String[]

trigger が監視する認証プロバイダのタイプのリスト。

有効なプロバイダーの種類:

  • "anon-user"

  • "local-userpass"

  • "api-key"

  • "custom-token"

  • "custom-function"

  • "oauth2-facebook"

  • "oauth2-google"

  • "oauth2-apple"

スケジュールされたtrigger構成は、 triggerが起動するスケジュールを指定する追加の構成オプションを備えた基本triggerスキーマに準拠します。 予定されたtriggerの構成ファイルには、次のフィールドがあります。

triggers/<trigger name>.json
{
"name": "<Trigger Name>",
"type": "SCHEDULED",
"config": {
"schedule": "<CRON expression>"
},
"function_name": "<Trigger Function Name>",
"disabled": <Boolean>
}
フィールド
説明
config.schedule
String
trigger の実行をスケジュールするCRON 式

次へ

Atlas アプリケーション サービスとは