[AWS Lambda] sendGrid와 Slack Bot을 이용하여 회사 서비스 메일을 슬랙에서 자동 수신화하기

손연주·2022년 2월 21일
0

AWS Lambda, typescript, Node.Js, express를 사용하였습니다.

회사 홈페이지를 보면 담장자 이름과 이메일 주소, 그리고 문의 사항을 적어 작업을 의뢰할 수 있는 공간이 있다. 여기서 작성된 내용이 회사 이메일로 보내지게 된다.

그러나 내용 확인이 필요한 개인마다 항상 Gmail을 확인해야 하는 단점이 있다. 따라서 유저가 작업 의뢰하기를 누른 순간 메일과 슬랙(사내 메신저)으로 전달이 된다면 굳이 인터넷 창을 하나 더 열어 메일함을 뒤져볼 필요가 없을 것이다.

그렇다면 이 작업을 위하여 어떤 게 필요할지 먼저 파악해보자면, 아래와 같이 세 가지가 있을 것이다.

  • 배포
  • Slack의 채널과 코드를 이어줄 수 있는 창구(Slack Bot)
  • API로 메일을 보내주는 sendGrid

이 작업이 왜 필요한지와 그 작업을 위해서 어떤 게 필요한지 알아보았으니 이제 어떻게 하는지에 대해 알아보자.

1. 배포

Serverless란? & AWS Lambda로 배포하기

메일이 발송되는 시점에 슬랙으로 수신만 하면 되기 때문에, 이 작업을 위하여 굳이 서버를 계속 켜놓을 필요는 없을 것이다. 따라서 메일이 발생하는 시점을 이벤트로 잡을 수 있는, 즉 함수를 등록하여 함수가 호출될 때마다 (실행되는 횟수와 실행된 시간) 이벤트를 처리하는 Serverless를 이용한다.

2. Slack Bot 연동

2-1. Slack Bot 생성

https://api.slack.com/apps
1. Create New App 버튼을 눌러 앱을 생성한다.
2. Add features and functionality : Bots
3. Add an OAuth Scope 버튼을 눌러 권한을 추가해준다.
4. Riview Scopes to Add 버튼을 눌러 앱 권한을 설정한다.
5. 지금 구현하는 기능은 메시지 보내기 기능으로 필요한 권한은 chat::write 이다.
6. 권한을 선택하면 위에 install to workspace 버튼이 활성화 되고, 활성화시키면 토큰을 얻을 수 있다.
7. Slack에서 원하는 채널에 들어가거나 새로 생성하여 세부정보-> 더보기-> 앱 추가에서 만들어진 앱을 추가해준다.
8. 앱을 추가한 Slack 채널의 url을 보면 https://app.slack.com/client/T.../C...로 되어있을 것이다. T로 시작하는 것은 Team id이고, C로 시작하는 값이 Channel id이다.

3. sendGrid 설정

4. Build 후 배포

참고

profile
할 수 있다는 생각이 정말 나를 할 수 있게 만들어준다.

0개의 댓글