텔레그램 봇 구성
web hook을 활용하여, amazon API gateway 에서 그 신호를 받고 amazon Lambda를 실행하여 발생할 수 있는 요금을 최소화하여 구성
데이터 베이스
Firebase Realtime DataBase
스케쥴 작업
heroku 에서 APScheduler를 활용하여 특정시간에 함수가 작동할 수 있도록 구성
telegram bot을 상시 활동상태로 만들기 위해 여러가지 방법이 있었다.
getUpdates()를 주기적으로 호출(loop) 하면서 새로운 메세지가 도착했는지 확인(teleport, python-telegram-bot 라이브러리 활용)
프로그램 코드를 올릴 '서버'가 필요 - EC2 , 라즈베리파이, Digital Ocean같은 곳의 VPS 등
웹훅 - 메시지가 도착했을 때 주소를 호출
AWS API Gateway - 웹훅할 주소 생성 및 lambda 실행 연결
AWS Lambda - 서버없이 서비스를 구현할 수 있도록 만든 서비스
개발환경 : python 3.6.12
amazonLambda : aws lambda에 올릴 파일
heroku : heroku에서 실시간 코로나 정보 알림을 작동하는 파일 부분
이 부분만 때서 git push heroku master 로 배포작업을 하면됨
main.py : 실제 핵심 작동로직
requirements.txt : 작동하는데 필요한 라이브러리 모음 리스트
pip install -r requirements.txt
로 개인 환경에 환경 세팅할 수 있음
runtime.py : python 버전 명시
Profile : Schduler에 특정시간에 주기적으로 process 실행시키기 위함
telegrambot : 로컬환경에서 개인적으로 텔레그램봇을 건드릴 때 쓰는 파일
이슈
원인
= 이전 누적확진자 수 - 오늘 누적확진자 수
해결
누적 확진자 수를 크롤링해올 때 증가확진자 수도 같이 크롤링하여 데이터 베이스에 계속 저장되어있도록 바꿈
이슈
원인
2021.02.20 에 특별발표로 오후 2시경에 비정규적으로 확진자 수에 대한 발표가 있었고 9시에 한 발표에 2명의 누적확진자가 증가했었음.
9시(heroku 스케줄러 작동시작시간) - 전날 오후 2시에 대한 발표 전달
9시 42분 - 2021.02.21 발표자료 전달
을 했기 때문에 하루에 2번이나 알림이 오게됨
해결