트리거 비활성화
이 페이지의 내용
트리거는 네트워크 중단 또는 기본 클러스터 변경과 같이 trigger 의 변경 스트림 이 계속 진행되지 못하게 하는 이벤트 에 대한 응답으로 suspended 상태 가 될 수 있습니다. trigger 가 일시 중단된 상태 가 되면 비활성화됩니다. 변경 이벤트를 수신하지 않으며 실행되지 않습니다.
참고
trigger 가 일시 중단되거나 실패한 이벤트 Atlas 는 프로젝트 소유자에게 문제를 알리는 이메일 을 보냅니다.
수동으로 trigger비활성화
trigger Atlas UI App Services CLI 에서 또는 를 사용하여 애플리케이션 디렉토리 를 가져와 수동으로 활성 를 비활성화할 수 있습니다.
Triggers 페이지로 이동
아직 표시되지 않은 경우 탐색 표시줄의 Organizations 메뉴에서 프로젝트가 포함된 조직을 선택합니다.
아직 표시되지 않은 경우 내비게이션 바의 Projects 메뉴에서 프로젝트를 선택합니다.
사이드바에서 Services 제목 아래의 Triggers를 클릭합니다.
트리거 페이지가 표시됩니다.
나열된 트리거에서 비활성화하려는 trigger 를 찾습니다.
Enabled 설정을 전환하여 비활성화한 다음 Save 을 클릭합니다.
MongoDB Atlas 사용자를 인증합니다.
MongoDB Atlas 관리 API 키 를 사용하여 App Services CLI 에 로그인 합니다.
appservices login --api-key="<API KEY>" --private-api-key="<PRIVATE KEY>" 앱의 최신 구성 파일을 가져옵니다.
다음 명령을 실행하여 구성 파일의 로컬 복사본을 가져옵니다.
appservices pull --remote=<App ID> 기본값 으로 이 명령은 파일을 현재 작업 디렉토리 로 가져옵니다. 선택 사항인
--local
플래그를 사용하여 디렉토리 경로를 지정할 수 있습니다.trigger 구성 파일 을 확인합니다.
애플리케이션 의 새 사본을 내보낸 경우, 일시 중단된 trigger 에 대한 최신 구성 파일 이 이미 포함되어 있어야 합니다. 디렉토리 에서 트리거와 이름이 같은 파일 을
/triggers
trigger 살펴보면 구성 파일 이 존재하는지 확인할 수 trigger 있습니다.trigger 비활성화합니다.
trigger 구성 파일 이 있는지 확인한 후 trigger JSON 정의의 최상위 수준에 값이
true
인"disabled"
필드 를 추가합니다.{ "id": "6142146e2f052a39d38e1605", "name": "steve", "type": "SCHEDULED", "config": { "schedule": "*/1 * * * *" }, "function_name": "myFunc", "disabled": true } 변경 사항을 배포합니다:
다음 명령을 실행하여 변경 사항을 배포 합니다.
appservices push
스냅샷에서 복원하기
스냅샷 에서 데이터베이스 를 복원 하면 비활성화되거나 일시 중단된 trigger 가 다시 활성화됩니다. 이미 처리된 이벤트에 대해서는 trigger 가 실행되지 않습니다. 스냅샷에서 복원하는 방법에 대한 자세한 내용은 클러스터 복원을 참조하세요.
다음 시나리오를 생각해 보겠습니다.
데이터베이스 trigger 가 비활성화되었거나 일시 중단되었습니다.
trigger 가 비활성화된 동안 새 문서가 추가됩니다.
스냅샷 에서 새 문서를 추가하기 이전의 시간으로 데이터베이스 를 복원 합니다.
Atlas 가 비활성화된 데이터베이스 trigger 다시 시작합니다.
재시작된 trigger 는 새로 추가된 모든 문서를 선택하고 각 문서 에 대해 실행합니다. 그러나 이미 처리된 이벤트에 대해서는 다시 실행 되지 않습니다 .
참고
스냅샷 복원 중에 이전에 활성화한 데이터베이스 trigger 가 실행 경우, 복원 trigger 프로세스 Atlas 중에 를 클러스터 에 trigger 연결할 수 없기 때문에 UI Atlas 의 편집 섹션에 오류가 표시됩니다. 스냅샷 복원이 완료되면 오류가 사라지고 trigger 가 계속 정상적으로 실행됩니다.