1. 대상
- 이미 Cloudwatch에서 알람을 Slack으로 받고 있지만, 더 꾸미고 싶다!
- Javascript로 코드를 작성할 수 있다!
하는 분을 대상으로 글을 작성하였습니다.
2. Template 작성
알람에서 식별자로 표시되는 경우, 사용자는 보기 어렵습니다.
우리가 이해하기 쉬운 식별자로 바꿔주기 위한 변수(caseID)를 선언합니다.
cloudwatch에서 전달받은 message를 Parameter로 받아 처리하는 함수(processEvent)를 정의합니다.
Try – Catch – Finally 문을 활용하여 Slack에 보낼 message를 만들어 전달합니다.
Finally Block에서는 response의 statusCode에 따라 결과를 처리합니다.
Slack에 보낼 message를 만들 때 사용할 내용을 정리한 변수(caseDiv)를 만들어 return하는 함수(categorizeCase)를 정의합니다.
함수(categorizeCase)의 return 값으로 Slack에 보낼 message를 생성하는 함수(createMessage)를 정의합니다.
message에 단위를 추가할 수 있는 함수(unitAdd)를 활용합니다.
Try Block에서 categorizeCase 함수 또는 createMessage 함수를 실행할 때 Error가 발생하는 경우,
간단한 내용만 정리하여 전달하는 함수(errorMessage)를 정의합니다.
만들어진 message를 Slack으로 전달하는 함수(postMessage)를 정의합니다.
마지막으로 알람을 만들 때 주의사항은 Cloudwatch에서 알람을 생성할 때
CPU, MEM, DISK, EBS, NETWORK 중 하나의 단어만 반드시 포함(대소문자 구분 X)하여야 정상적으로 출력됩니다.
