GAS 트리거에서 오류 탐지

3052 단어 GAStech
YAMAP 엔지니어 Advent Calendar 2021일 15일째입니다.
나는 YAMAP STORE의 각종 공사에 종사한다. @issyxissy.
일단 전방 엔지니어의 리더라고 할 수 있지만 기본적으로 YAMAP STORE에 주력한다.
Shopify와 창고 시스템 사이를 교환하는 GAS 버전 뒷마당.
지금은 GAS 버전의 뒷마당을 물러나게 하기 위해 여러 곳에서 노력하고 있습니다.
그럼에도 운행 중인 GAS 버전 뒷마당이지만 트리거 처리를 통해 복잡해져 실행 오류를 감지하기 어려워 슬랙에게 알림을 받으려고 조금 공을 들였다.

전제 조건


GAS의 트리거는 매일 지정된 시간에 실행됩니다.
또한 트리거의 설정은 실행 과정에서 트리거를 삭제하고 다음 트리거를 다시 설정하는 것입니다.

왜 방법을 생각해야 합니까?


GAS를 통해 트리거된 오류 탐지를 트리거 설정 화면에 설정할 수 있습니다.
그러나 GAS에서는 다음 코드로 오류 알림을 설정할 수 없습니다.(왜?)
ScriptApp.newTrigger([function name]).timeBased().at([Date]).create();
이렇게 하면 기본 오류 알림 설정毎日通知を受け取る으로 설정됩니다.
그 결과 하루에 한 번만 오류를 감지할 수 있었다.
이상에서 오류가 발생하면 바로 검사하고 싶어요!
나는 어떻게 잘못을 통지할지 고려했다.

조사하다.


우선 오류 감지, 클라우드 로그 경보로 안 되겠냐며 흐릿하게 생각했다.
로그 출력, Logger.log('')로 내보내기
console.로그 (') 로 출력할 수 있다는 것을 알아차렸어요. (몰라요.)
예전에 함께 있을 때 프로젝트와 관련된 기억.
https://www.hidetoshl.com/gas-gcp/
링크를 통해 Cloud Logging으로 출력할 수 있습니다.
로그 출력으로 전단과 같이 아래에서 출력할 수 있습니다.
console.log() -> debug?
console.info() -> info
console.warn() -> Warning 
console.error() -> Error
로그 데이터가 Cloud Logging으로 출력되었음을 확인했습니다.

이런 일이 이루어졌다


이런 흐름이 돼서
  • GAS의 트리거 설정
  • 트리거 실행
  • 오류 발생
  • Cloud Logging으로 로그 출력
  • 경고 메일 발송
  • Gmail에서 슬랙 이메일로 전달
  • 슬랙에서 발언
  • 검측!

  • 이런 거 설정하면 돼요.


    GAS와 GCP 프로젝트 링크


    참고해주세요...(오류 42155;최면술 4215분;)
    https://www.hidetoshl.com/gas-gcp/

    Cloud Logging으로 경고 만들기


    GCP의 콘솔에서 Log-> 로그 리소스 매니저를 사용하여 출력된 로그를 탐색할 수 있습니다.
    경고 생성을 클릭하여 ↓ 설정...(오류 42155;\8979;오류 4215;)

    Slack의 전자 메일 메시지를 설정합니다.


    슬랙 도움말 참조...(오류 42155점, 오류 42159점, 오류 4215점;)
    https://slack.com/intl/ja-jp/help/articles/206819278-Slack-메일 보내기 #h01F4WE00ERHA012ATFV1PYA1TG

    Gmail을 사용하여 Slack에 전달된 e-메일입니다.


    그럼 참고해주세요.
    https://reworkstyle.com/it-tool/gmail-slack-notification/

    총결산

  • Cloud Loging을 사용할 경우 GAS 트리거에 의존하지 않고 즉시 오류를 감지할 수 있음
  • 로그를 Cloud Logging으로 출력하면 나중에 편리하게
  • 좀 더 예쁘면 안 될까
  • 좋은 웹페이지 즐겨찾기