티스토리 뷰

개요

특정 코드를 정기적으로 실행시키고 싶을 때 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번씩 실행하는 크론 입니다.

 

저는 텔레그램을 연결 해놓았기 때문에 실행 되었는지 여부를 텔레그램 메세지로 알 수 있었습니다.

 

 

정기적으로 실행하는 기능 제거

정기적으로 실행 하면 계속 텔레그램 메세지가 오게 됩니다.

정기적으로 실행하고 싶지 않을 때는 트리거를 제거 합니다.

트리거를 삭제 합니다.

 

 

트리거가 삭제 되면 실행 되지 않습니다.

 

 

참고:

aws Lambda에서 python 라이브러리 적용하기 (tistory.com)

Telegram Bot 만들기 (tistory.com)

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
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 29 30
글 보관함