Docs Menu
Docs Home
/ /
Atlas App Services
/ /

trigger 구성 파일

이 페이지의 내용

  • 일반 구성
  • 데이터베이스 트리거
  • 인증 트리거
  • 예약된 트리거
app/
└── triggers/
└── <trigger name>.json

모든 Atlas Triggers는 기본 스키마를 준수하며 trigger 유형에 따라 구체적인 변형이 있습니다. 모든 trigger 구성 파일에는 다음 필드가 존재합니다.

triggers/<trigger name>.json
{
"name": "<Trigger Name>",
"type": "<Trigger Type>",
"disabled": <Boolean>,
"config": {},
"event_processors": {
"<Type of Event Processor>": {
"config": {}
}
}
}
필드
설명
name
string
trigger 이름입니다. 최대 64자까지 입력할 수 있으며 ASCII 문자, 숫자, 밑줄, 하이픈만 포함할 수 있습니다.
type
string

트리거 유형입니다. 이 필드의 값에 따라 정확한 구성 파일 스키마가 결정됩니다.

유효한 옵션은 다음과 같습니다.

  • "DATABASE"

  • "AUTHENTICATION"

  • "SCHEDULED"

disabled
boolean
기본값은 false 입니다. true 인 경우 trigger는 어떤 이벤트도 수신하지 않으며 실행되지 않습니다.
config
object

트리거의 추가 구성 옵션에 매핑되는 필드가 있는 문서입니다. 정확한 구성 필드는 trigger type 에 따라 달라집니다.

event_processors
object

trigger가 실행될 때마다 이벤트 프로세서로 이벤트를 전송하도록 trigger를 구성하는 문서입니다.

유효한 옵션은 다음과 같습니다.

  • "function"

  • "AWS_EVENTBRIDGE"

함수에 대한 자세한 내용은 Realm 함수를 참조하세요.

AWS EventBridge에 대한 자세한 내용은 AWS EventBridge에 트리거 이벤트 전송을 참조하세요.

event_processors.config
object

이벤트 프로세서의 추가 구성 옵션에 매핑되는 필드가 있는 문서입니다. 정확한 구성 필드는 이벤트 프로세서 유형에 따라 다릅니다.

데이터베이스 트리거 구성은 감시할 컬렉션과 트리거를 실행할 시기를 지정하는 추가 구성 옵션이 포함된 기본 트리거 스키마를 따릅니다.

데이터베이스 트리거 구성 파일에 존재하는 필드는 다음과 같습니다. 이벤트 프로세서 유형에 따라 두 가지 구성이 가능합니다.

  • FUNCTION

  • AWS_EVENTBRIDGE

함수 이벤트 프로세서를 사용한 데이터베이스 트리거

triggers/<trigger name>.json
{
"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 이벤트 프로세서를 사용한 데이터베이스 트리거

triggers/<trigger name>.json
{
"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
감시되는 collection이 포함된 MongoDB database의 이름입니다.
config.collection
string
trigger가 감시하는 collection의 이름입니다.
config.operation_types
string[]

트리거가 실행되도록 하는 하나 이상의 데이터베이스 작업 유형 목록입니다.

모든 Atlas Triggers에 유효한 작업 유형:

  • "INSERT"

  • "UPDATE"

  • "REPLACE"

  • "DELETE"

데이터베이스 및 배포 Atlas Triggers에 유효한 작업 유형은 다음과 같습니다.

  • "CREATE_COLLECTION"

  • "MODIFY_COLLECTION"

  • "RENAME_COLLECTION"

  • "SHARD_COLLECTION"

  • "DROP_COLLECTION"

  • "RESHARD_COLLECTION"

  • "REFINE_COLLECTION_SHARD_KEY"

  • "CREATE_INDEXES"

  • "DROP_INDEXES"

배포 트리거에만 유효한 작업 유형입니다:

  • "DROP_DATABASE"

MongoDB Compass 또는 MongoDB Atlas 데이터 탐색기에서 실행한 업데이트 작업은 이전 문서를 완전히 대체합니다. 따라서 이러한 클라이언트의 업데이트 작업은 업데이트 UPDATE 이벤트가 아닌 REPLACE 변경 이벤트를 생성합니다.

config.full_document
boolean

인 경우 trueUPDATE 변경 이벤트에는 필드에 변경 사항이 적용된 수정된 문서의 최신 과반수 커밋 버전이 포함됩니다.fullDocument

참고

이 설정에 관계없이 INSERTREPLACE 이벤트에는 항상 ``fullDocument`` 필드가 포함됩니다. DELETE 이벤트에는 fullDocument 필드가 포함되지 않습니다.

config.full_document_before_change
boolean

true 인 경우 변경 이벤트에는 fullDocumentBeforeChange 필드에 변경 사항이 적용 되기 직전에 수정된 문서 사본이 포함됩니다. INSERT 이벤트를 제외한 모든 변경 이벤트에는 문서 사전 이미지가 포함됩니다.

중요

컬렉션 수준 사전 이미지 설정

문서 사전 이미지는 oplog에 저장된 추가 정보를 사용합니다. 추가 데이터는 일부 앱의 성능에 영향을 미칠 수 있습니다.

특정 컬렉션의 트리거에 대해 문서 사전 이미지를 활성화하면 해당 컬렉션의 oplog에 사전 이미지 데이터가 포함되고 컬렉션의 다른 트리거는 추가 오버헤드 없이 사전 이미지를 사용할 수 있습니다.

트리거별로 문서 사전 이미지를 비활성화하여 변경 이벤트에서 사전 이미지를 제외할 수 있습니다. 트리거 수준 설정에 관계없이 컬렉션의 사전 이미지를 명시적으로 비활성화하지 않는 한 컬렉션의 oplog 항목에는 사전 이미지 데이터가 계속 포함됩니다.

자세한 내용은 문서 미리보기 이미지를 참조하세요.

config.tolerate_resume_errors
boolean

true 인 경우 변경 스트림 이벤트를 처리하는 데 필요한 토큰을 찾을 수 없는 경우 트리거가 자동으로 재개됩니다.

활성화되어 있고, 클러스터의 oplog에서 이 트리거의 재개 토큰을 찾을 수 없는 경우, 트리거는 다음번 관련 변경 스트림 이벤트에서 자동으로 이벤트 처리를 재개합니다. 트리거가 일시 중단된 시점부터 트리거가 실행을 재개할 때까지의 모든 변경 스트림 이벤트에는 트리거가 실행되지 않습니다.

일시 중단된 Atlas Triggers 재개에 대한 자세한 내용은 일시 중단된 Atlas Triggers를 참조하세요 .

config.unordered
boolean

true 인 경우 이 trigger에 대해 이벤트 순서 지정이 비활성화되어 있음을 나타냅니다.

이벤트 순서 지정이 활성화되면 변경 이벤트의 타임스탬프를 기준으로 이 트리거가 순차적으로 여러 번 실행됩니다. 이벤트 순서 지정이 비활성화되면 이 트리거가 순서에 관계없이 여러 번 실행됩니다.

성능 최적화

이벤트 순서 지정을 비활성화하여 대량 데이터베이스 작업에 응답하는 Atlas Triggers의 성능을 개선합니다. 자세히 알아보세요.

config.match
object

App Services가 트리거를 발생시키는 변경 이벤트를 필터링하는 데 사용하는 $match 표현식 문서입니다. 트리거는 이 일치 표현식에 대해 수신한 모든 변경 이벤트 객체를 평가하며 해당 변경 이벤트에 대해 표현식이 true 로 평가되는 경우에만 실행됩니다.

참고

내장된 필드에 점 표기법 사용

MongoDB는 일치 표현식에 내장된 문서에 대해 완전한 동등성 매치를 수행합니다. 내장된 문서에서 특정 필드를 일치시키려면 점 표기법을 사용해 해당 필드를 직접 참조해야 합니다. 자세한 내용은 MongoDB 서버 매뉴얼의 내장된 문서에 대한 쿼리를 참조하세요.

성능 최적화

trigger가 $match 표현식을 사용하여 처리하는 필드 수를 제한합니다. 자세히 알아보세요.

config.maximum_throughput
boolean
기본값은 false 입니다. true 인 경우 최대 처리량을 기본 동시 프로세스 10,000개 이상으로 늘릴 수 있습니다. 자세한 내용은 처리량 Atlas Triggers 최대화를 참조하세요.
config.skip_catchup_events
boolean
기본값은 false 입니다. true 인 경우, 트리거를 비활성화한 후 활성화해도 트리거가 비활성화된 동안 발생한 이벤트가 호출되지 않습니다.
config.project
object

변경 스트림의 각 이벤트에서 필드의 하위 집합을 선택하는 $project 표현식입니다. 이를 사용 하여 trigger 의 실행을 최적화할 수 있습니다.

표현식은 변경 이벤트의 필드 이름을 필드를 제외한 0 또는 필드를 포함하는 1 중 하나에 매핑하는 객체입니다. 표현식은 0 또는 1 중 하나의 값을 가질 수 있지만 두 값을 함께 가질 수는 없습니다. 이렇게 하면 프로젝션이 포괄적 프로젝션과 배타적 프로젝션의 두 가지 카테고리로 분할됩니다.

  • 포괄적 프로젝트 표현식은 각 변경 이벤트 문서에 포함할 필드를 지정합니다. 표현식은 포함할 필드의 이름을 1에 매핑하는 객체입니다. 필드를 포함하지 않으면 예상 변경 이벤트에 포함되지 않습니다.

    예시

    다음 프로젝션에는 _idfullDocument 필드만 포함됩니다.

    {
    _id: 1,
    fullDocument: 1
    }
  • 배타적 프로젝트 표현식은 각 변경 이벤트 문서에서 제외할 필드를 지정합니다. 이 표현식은 포함할 필드 이름을 0에 매핑하는 객체입니다. 필드를 제외하지 않으면 해당 필드는 예상 변경 이벤트에 포함됩니다.

    예시

    다음 프로젝션에서는 _idfullDocument 필드가 제외됩니다.

    {
    _id: 0,
    fullDocument: 0
    }

    참고

    프로젝션이 있는 operation_type 필드를 제외할 수 없습니다. 이렇게 하면 트리거가 특정 이벤트의 작업 유형에 대해 실행되어야 하는지 항상 확인할 수 있습니다.

event_processors.config.account_id
string
Amazon Web Services 계정 ID입니다. 계정 ID를 찾는 방법에 대한 자세한 내용 은 MongoDB 제휴하다 이벤트 소스 설정을 참조하세요.
event_processors.config.region
string
AWS 리전입니다.
event_processors.config.extended_json_enabled
boolean

false 기본적으로. true 이면 확장 JSON이 활성화됩니다.

Atlas Triggers는 이벤트 객체의 BSON types 를 표준 JSON types로 변환합니다. BSON 유형 정보를 보존하기 위해 이벤트 객체를 확장 JSON 형식 으로 직렬화할 수 있습니다. 확장 JSON은 가독성과 상호 운용성을 희생하면서 유형 정보를 보존합니다.

error_handler.config.enabled
boolean
true 인 경우 AWS EventBridge 트리거에 대해 오류 처리가 활성화됩니다. 오류 처리 구성에 대한 자세한 내용은 사용자 지정 오류 처리를 참조하세요.
error_handler.config.function_name
string
Amazon Web Services Eventbridge 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[]

트리거가 감시하는 인증 제공자 유형 목록입니다.

유효한 제공자 유형:

  • "anon-user"

  • "local-userpass"

  • "api-key"

  • "custom-token"

  • "custom-function"

  • "oauth2-facebook"

  • "oauth2-google"

  • "oauth2-apple"

예정된 트리거 구성은 트리거가 실행되는 일정을 지정하는 추가 구성 옵션이 포함된 기본 트리거 스키마를 따릅니다. 예정된 트리거 구성 파일에는 다음과 같은 필드가 있습니다.

triggers/<trigger name>.json
{
"name": "<Trigger Name>",
"type": "SCHEDULED",
"config": {
"schedule": "<CRON expression>"
},
"function_name": "<Trigger Function Name>",
"disabled": <Boolean>
}
필드
설명
config.schedule
string
트리거의 실행을 예약하는 CRON 표현식 입니다.

돌아가기

Atlas Device Sync