문서 메뉴
문서 홈
/ /
Atlas App Services

Atlas 트리거

이 페이지의 내용

  • 트리거 유형
  • 제한 사항
  • Atlas 함수 제약 조건 적용
  • 이벤트 처리량
  • 트리거의 수는 사용 가능한 변경 스트림을 초과할 수 없음
  • 중복 이벤트 진단

Atlas Triggers는 애플리케이션과 데이터베이스 로직을 실행합니다. Triggers는 이벤트에 응답하거나 사전 정의된 스케줄을 사용할 수 있습니다.

Triggers는 구성된 유형의 이벤트를 수신 대기합니다. 각 Trigger는 특정 Atlas Function에 연결됩니다. Trigger가 구성과 일치하는 이벤트를 관찰하면 '실행'됩니다. Trigger는 이 이벤트 객체를 연결된 함수에 인수로 전달합니다.

다음에서 트리거가 발동될 수 있습니다.

  • 주어진 컬렉션의 특정 작업 유형입니다.

  • 사용자 생성 또는 삭제와 같은 인증 이벤트입니다.

  • 예약된 시간입니다.

App Services는 각 트리거의 최근 실행 시간을 추적해 각 이벤트가 한 번 이상 처리되도록 보장합니다.

App Services는 3가지 유형의 트리거를 지원합니다.

  • 데이터베이스 트리거는 문서 삽입, 변경, 삭제에 응답합니다. 데이터베이스 트리거는 연결된 각 MongoDB 컬렉션별로 구성할 수 있습니다.

  • 인증 트리거는 사용자 생성, 로그인, 삭제에 응답합니다.

  • 예정된 트리거는 미리 정의된 일정에 따라 함수를 실행합니다.

트리거는 Atlas 함수를 호출합니다. 이는 모든 Atlas 함수와 동일한 제약 조건이 있음을 의미합니다.

Atlas Function 제약 조건을 더 자세히 알아보세요.

용량을 사용할 수 있게 되면 프로세스 이벤트를 트리거합니다. 트리거의 용량은 이벤트 순서 구성에 따라 결정됩니다.

  • 순서가 지정된 트리거는 change stream의 이벤트를 한 번에 하나씩 순서대로 처리합니다. 이전 이벤트의 처리가 완료된 후에만 다음 이벤트의 처리가 시작됩니다.

  • 순서가 지정되지 않은 트리거는 기본적으로 한 번에 최대 10,000개까지 여러 이벤트를 동시에 처리할 수 있습니다. 트리거 데이터 소스가 M10+ Atlas cluster인 경우, 순서가 지정되지 않은 개별 트리거를 구성하여 10,000개의 동시 이벤트 임계값을 초과할 수 있습니다. 자세한 내용은 최대 처리량 트리거를 참조하세요.

트리거 용량은 처리량 또는 보장된 실행 속도의 직접적인 측정값이 아닙니다. 트리거 용량은 트리거가 한 번에 처리할 수 있는 최대 이벤트 수의 한도를 말합니다. 실제로 트리거가 이벤트를 처리할 수 있는 속도는 트리거 함수의 실행 시간 로직과 지정된 기간 동안 수신한 이벤트 수에 따라 달라집니다.

트리거의 처리량을 늘리려면 다음 작업을 해 볼 수 있습니다.

  • 트리거 함수의 실행 시간 동작을 최적화합니다. 예를 들어 네트워크 호출 횟수를 줄일 수 있습니다.

  • 이 트리거의 프로젝션 필터를 사용하여 각 이벤트 객체의 크기를 줄이세요. 최상의 성능이 구현되도록 각 변경 이벤트의 크기를 2KB 이하로 제한하세요.

  • 트리거가 처리하는 이벤트 수를 줄이려면 일치 필터를 사용합니다. 예를 들어 특정 필드가 변경된 경우에만 어떤 작업을 수행하고 싶을 수 있습니다. 모든 업데이트 이벤트를 일치시키고 함수 코드에서 필드가 변경되었는지 확인하는 대신 트리거의 일치 필터를 사용하여 필드가 이벤트의 updateDescription.updatedFields 객체에 포함된 경우에만 트리거를 실행할 수 있습니다.

App Services는 데이터베이스 트리거의 총개수를 제한합니다. 제한은 Atlas cluster의 크기에 따라 적용됩니다.

각 Atlas cluster 계층에는 지원되는 change stream의 최대 개수가 있습니다. 데이터베이스 트리거에는 자체 change stream이 필요합니다. 다른 App Services에서도 Atlas Device Sync와 같은 change stream을 사용합니다. 데이터베이스 트리거는 사용 가능한 change stream 수를 초과할 수 없습니다.

Atlas 계층에 대해 지원되는 change stream 수에 대해 자세히 알아보세요.

정상적인 트리거 작동 중에는 트리거가 중복 이벤트를 보내지 않습니다. 그러나 일부 실패 또는 오류 조건이 발생하면 트리거가 중복 이벤트를 전달할 수 있습니다. 다음과 같은 경우 중복된 트리거 이벤트가 표시될 수 있습니다.

  • 이벤트 처리 및 추적을 담당하는 서버에 장애가 발생합니다. 이 장애로 인해 서버는 지속형 또는 장기 저장 시스템에 진행 상황을 기록하지 못하게 되어, 일부 최신 이벤트를 처리했다는 사실을 '잊게' 됩니다.

  • 이벤트 1부터 10까지 동시에 전송되는 비순차적 처리를 사용합니다. 이벤트 9가 실패하여 트리거 일시 중단으로 이어지는 경우, 시스템이 이벤트 9에서 재개될 때 이벤트 10과 같은 이벤트가 다시 처리될 수 있습니다. 시스템이 이벤트 순서를 엄격하게 따르지 않고 이미 처리된 이벤트를 다시 처리할 수 있으므로, 중복이 발생할 수 있습니다.

트리거 이벤트가 중복되는 경우 앱 로그에서 일시 중단된 트리거 또는 서버 장애를 확인하세요.

← 자바스크립트 지원