Docs Menu
Docs Home
/ /
Atlas App Services

trigger 구성 파일

이 페이지의 내용

  • 일반 구성
  • 데이터베이스 트리거
  • 인증 트리거
  • 예약된 트리거

참고

이 페이지에서는 레거시 구성 파일 형식에 대해 설명합니다. 이 정보는 더 이상 사용되지 않는 realm-cli 을 사용하는 경우에만 사용해야 합니다.

App Services CLI로 가져오거나 UI에서 내보내는 모든 구성 파일은 최신 구성 버전을 사용합니다. 현재 구성 파일 형식에 대한 자세한 내용은 앱 구성을 참조하세요.

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

모든 Atlas Triggers는 기본 스키마를 준수하며 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

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

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

  • "DATABASE"

  • "AUTHENTICATION"

  • "SCHEDULED"

config
Document

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

function_name
String
트리거가 실행될 때마다 실행되는 Realm 함수 의 이름입니다.
event_processors
Document

트리거가 실행될 때마다 외부 이벤트 프로세서로 이벤트를 전송하도록 트리거를 구성하는 문서입니다. function_name 과 함께 사용할 수 없습니다.

자세한 내용은 Amazon Web Services Eventbridge에 trigger 이벤트 전송을 참조하세요.

disabled
Boolean
true 인 경우 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
config.database
String
감시되는 collection이 포함된 MongoDB database의 이름입니다.
config.collection
String
trigger가 감시하는 collection의 이름입니다.
config.operation_types
String[]

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

유효한 작업 유형:

  • "INSERT"

  • "UPDATE"

  • "REPLACE"

  • "DELETE"

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
Document

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

참고

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

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

성능 최적화

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

config.project
Document

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

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

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

    예시

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

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

    예시

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

    {
    _id: 0,
    fullDocument: 0
    }

    참고

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

인증 트리거 구성은 감시할 인증 공급자와 트리거를 실행하는 시기를 지정하는 추가 구성 옵션이 포함된 기본 트리거 스키마를 준수합니다. 인증 트리거 구성 파일에 존재하는 필드는 다음과 같습니다.

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 Application Services란 무엇인가요?