본문 바로가기
개발/AWS

AWS Lambda 주기적으로 자동실행하게하기

by 문둘기 2019. 8. 26.

※ Lambda 와 DynamoDB의 기본적인 사용법은 생략했습니다. 

 

 


이번에 주기적으로 람다함수를 자동실행하게 하는방법을 찾던도중

CloudWatch Events 를 이용하면 람다를 자동으로 실행하게할수있다는것을 알게되었다.

람다는 cold start , warm start 라는게 존재하기때문에 오랫동안 실행되지않은 cold 상태의 람다함수는
예열된(?) warm 상태의 람다보다 실행이 오래걸린다 ( 사실 오래걸려봣자 1초 정도 차이남 )

그래서 CloudWatch Events 를 이용해 주기적으로 람다함수를 실행하여 warm 상태를 유지하는데 사용하기도한다. 
( 물론 사용을 더하는만큼 비용이 추가되긴할것이다 )

 

 하지만 나는 그냥 람다함수 자동실행을 위해 CloudWatch Events 를 사용하려고한다 

 

우선 테스트를위해서 

test 라는 함수를 만들었다.

 

이함수는 실행되면 DynamoDB의 test테이블에 값을 저장한다   

partition key에는 "test"
sort key에는 현재 시간을 저장한다

 

 

나는 이함수가 1분마다 자동 실행되게 만들어볼생각이다

 

 

 

왼쪽에 트리거 추가를 클릭 

 

 

 

cloudwatch events 를 검색해서 선택한다 

 

 

 

규칙에서 새규칙 생성을 선택한뒤

 

 

 

 

 

규칙이름 , 규칙설명을 원하는대로 적어준다

 

 

 

 

규칙유형은 이벤트패턴과 예약표현식이있는데
우리는 단순하게 1분마다 실행할것이기때문에 예약표현식을 선택한다 

 

 

cron 또는 rate 식은 이런식으로 작성한다,  자세한건 공홈 설명서 참고 

위의 공식홈페이지 설명서링크에 가보면 정말 다양하고 정교하게 event 설정을 할수있으니 참고하면 좋을거같다

 

 

마지막으로 트리거 활성화를 체크하고 

 

ADD해주면

 

완료

 

이제 해당 cloudwatch events가 연결된 람다를 1분마다 자동으로 실행시킬것이다 

 

 

 

 

 

10여분후 확인해본결과 1분마다 insert가 잘 된것을 볼수있다 

 

 

 

테스트가 끝났으니 cloudWatch Events를 클릭해서 비활성화(Disabled)로 바꿔주거나 삭제하면된다