티스토리 뷰
개요
특정 코드를 정기적으로 실행시키고 싶을 때 AWS Lambda + CloudWatch EventBridge를 개인적으로 선호 합니다.
람다는 월 100만건까지 무료이기 때문입니다.
코드는 파이썬으로 개발했다는 전제하에 파이썬 코드가 잘 실행 되는지 세팅 해보았습니다.
문제점
람다는 문제점이 라이브러리를 따로 업로드 해줘야 쓸 수 있다는 것입니다. 그래서 아래 라이브러리 업로드 하는 내용을 추가 합니다.
Lambda에 라이브러리 업로드
lambda_function.py
람다에서 가장 먼저 실행 되는 파일은 꼭 아래와 같이 lambda_handler(event, context) 로 작성 해주어야 합니다.
이 코드는 텔레그램 메세지를 보내는 코드 입니다.
import requests
def lambda_handler(event, context):
data = requests.get("https://api.telegram.org/<bot_id>:<key>/sendMessage?chat_id=<chat_id>&text=람다 실행 완료")
print(data.json())
requests, bs4등을 업로드 하려면 아래와 같이 디렉토리를 하나 만들고 해당 디렉토리에 라이브러리가 다운로드 되도록 -t 옵션을 주고 pip install을 합니다.
mkdir bs4_requests
cd bs4_requests
pip install bs4 -t .
pip install requests -t .
아래와 같이 zip으로 압축 합니다.
AWS의 Lambda콘솔에 가서 .zip을 업로드 합니다.
업로드가 완료 되면 아래와 같이 파일들이 올라갑니다.
위에서 말씀드렸던 lambda_function.py 파일을 추가 해줍니다.
트리거 추가하기
트리거 추가를 누릅니다.
EventBridge생성
cron식 입력
cron(0/2 * * * ? *) 2분마다 1번씩 실행하는 크론 입니다.
저는 텔레그램을 연결 해놓았기 때문에 실행 되었는지 여부를 텔레그램 메세지로 알 수 있었습니다.
정기적으로 실행하는 기능 제거
정기적으로 실행 하면 계속 텔레그램 메세지가 오게 됩니다.
정기적으로 실행하고 싶지 않을 때는 트리거를 제거 합니다.
트리거를 삭제 합니다.
트리거가 삭제 되면 실행 되지 않습니다.
참고:
- Total
- Today
- Yesterday
- shellscript
- 2017 티스토리 결산
- 싱가폴
- 도커컨테이너
- 이직
- docker container whale
- Linux
- docker container
- docker container tissue
- 도커각티슈케이스
- docker container case
- 도커티슈박스
- 도커각티슈박스
- 개발자
- vim
- docker container tissue box
- Sh
- 도커티슈케이스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |