ANNOUNCEMENT: Voyage AI joins MongoDB to power more accurate and trustworthy AI applications on Atlas.
Learn more
Docs Menu

trigger 構成ファイル

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

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

triggers/<trigger name="">.json</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 の種類。 このフィールドの値によって、正確な構成ファイル スキーマが決まります。

有効なオプション:

  • "DATABASE"

  • "AUTHENTICATION"

  • "SCHEDULED"

disabled
boolean

デフォルトはfalseです。 trueの場合、trigger はイベントをリッスンせず、起動しません。

config
object

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

event_processors
object

起動するたびにイベント プロセッサにイベントを送信するように trigger を構成するドキュメント。

有効なオプション:

  • "FUNCTION"

  • "AWS_eventbridge"

関数の詳細については、「 Atlas Function 」を参照してください。

AWS Eventbridgeの詳細については、「 AWStrigger Eventbridge に送信するAWS Eventbridge 」を参照してください。

event_processors.config
object

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

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

データベースtrigger設定ファイルには、以下のフィールドがあります。 イベント プロセッサの型に応じて、次の 2 つの構成があります。

  • FUNCTION

  • AWS_EVENTBRIDGE

関数イベント プロセッサによるデータベースtrigger

triggers/<trigger name="">.json</trigger>
{
"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>"
}
}
}
}

triggerAWS EventbridgeEvent プロセッサ を使用したデータベース

triggers/<trigger name="">.json</trigger>
{
"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

監視対象のコレクションを含むMongoDBデータソースの一意の識別子。 サーバーレスインスタンス または フェデレーティッドデータベースインスタンス ではデータベース を定義できません。trigger

config.database
string

監視対象のコレクションを含む MongoDB database の名前。

config.collection
string

trigger が監視するコレクションの名前。

config.operation_types
string[]

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

すべての trigger で有効な操作:

  • "INSERT"

  • "UPDATE"

  • "REPLACE"

  • "DELETE"

データベーストリガーと配置トリガーの有効な操作タイプ

  • "CREATE_COLLECTION"

  • "MODIFY_COLLECTION"

  • "RENAME_COLLECTION"

  • "SHARD_COLLECTION"

  • "DROP_COLLECTION"

  • "RESHARD_COLLECTION"

  • "REFINE_COLLECTION_SHARD_KEY"

  • "CREATE_INDEXES"

  • "DROP_INDEXES"

配置 trigger でのみ有効な操作のタイプは以下のとおりです。

  • "DROP_DATABASE"

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
object

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

注意

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

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

Tip

パフォーマンスの最適化

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

config.maximum_throughput
boolean

デフォルトはfalseです。 trueの場合、 最大スループット の同時プロセス数をデフォルトの 10,000 よりも増やすことができます。 詳しくは、「スループット Trigger の最大化 」を参照してください。

config.skip_catchup_events
boolean

デフォルトはfalseです。 trueの場合、trigger を無効にした後に trigger を有効にしても、trigger が無効になっている間に発生したイベントは呼び出されません。

config.project
object

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

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

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

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

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

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

    {
    _id: 0,
    fullDocument: 0
    }

    注意

    プロジェクションで operation_type フィールドを除外することはできません。これにより、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

デフォルトではfalsetrueの場合、拡張 JSON が有効になります。

trigger は、イベント オブジェクト内のBSON typesを標準のJSON型に変換します。 BSON type 情報を保持するには、代わりにイベント オブジェクトを拡張 JSON 形式にシリアル化します。 拡張 JSON は、読みやすさと相互運用性を犠牲にして、型情報を保持します。

error_handler.config.enabled
boolean

true の場合、 AWS Eventbridge triggerのエラー処理が有効になります。 エラー処理の構成の詳細については、「カスタムエラー処理 」を参照してください。

error_handler.config.function_name
string

AWS Eventbridge triggerが失敗し、正常に再試行できない場合に呼び出されるエラー ハンドラー関数の名前。

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

triggers/<trigger name="">.json</trigger>
{
"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</trigger>
{
"name": "<Trigger Name>",
"type": "SCHEDULED",
"config": {
"schedule": "<CRON expression>"
},
"function_name": "<Trigger Function Name>",
"disabled": <Boolean>
}
フィールド
説明
config.schedule
string

trigger の実行をスケジュールするCRON 式