AWS Lambda에서 파이썬 프로그램 정기 실행

3574 단어 람다파이썬AWS

소개



AWS lambda를 사용하여 스케줄 실행 프로그램을 설치했습니다.
lambda의 기본적인 일로 의외로 걸렸으므로 남겨 둡니다.
AWS 계정이 생성 중입니다.

MAC OS X
파이썬 3.6

대상



· lambda를 만지지 않은 분
· 우선 무언가 움직여보고 싶은 분

lambda란?



스크립트를 실행할 수 있는 서버리스 서비스입니다.
서버리스라고 해도 스크립트의 실행시에만 서버를 기동하는 이미지입니다.

호출은 AWS의 빈 서버에서 이루어지므로 실행하는 서버는 매번 다릅니다.
(고정 IP를 할당한 서브넷에 lambda를 설치하여 실행함으로써 IP를 고정으로 할 수 있습니다)

무료 사용 범위가 매월 100만 건의 무료 요청과 초당 40만 GB의 컴퓨팅 시간이므로 대부분 무료 프레임으로 이동할 수 있습니다. Web이나 IOT의 백엔드의 API로서도 사용할 수 있으므로 엄청 편리한 서비스군요.

간단한 스크립팅



파이썬에서 Lambda 스크립트를 작성하는 경우 lambda_function.py라는 이름으로 작성해야합니다.
그 안의 lambda_handler라는 함수가 불리기 때문에 lambda_handler 함수도 준비합니다.

lambda_function.py
# -*- coding:utf-8 -*-

# lambda実行時に呼ばれる関数。引数はevent,contextがデフォルトっぽいです。
# 引数なくてもいいっぽいですが、書いておきます。
def lambda_handler(event, context):
    print('テスト実行')


이 스크립트를 zip 형식으로 압축합니다.

bash
$ zip function.zip lambda_function.py

MAC의 경우 탐색기에서 압축하면 .DS_Store 파일이 들어 있고 lambda_function.py를 읽을 수 없으므로 명령으로 압축합니다.

Lambda 함수 만들기



AWS 콘솔 화면에서 "Lambda"→ "함수 생성"을 선택합니다.
함수 이름을 넣고 런타임은 이번에는 파이썬 3.6으로 만듭니다.



입력이 끝나면 함수 만들기 버튼을 클릭합니다.
이제 함수를 만들었으므로 이전 스크립트를 업로드합니다.
오른쪽 하단의 '액션' 버튼에서 '.zip 파일 업로드'로 방금전의 zip 파일을 업로드합니다.





테스트 실행



오른쪽 상단의 테스트를 클릭하고 이벤트 이름을 입력합니다.
아래의 배열은 함수에 건네주는 이벤트 인수입니다만, 이번은 사용하고 있지 않으므로, 변경하지 않고 그대로 작성합니다.



작성한 테스트를 선택한 상태에서 테스트 버튼을 클릭합니다.



함수 코드 아래에 실행 결과가 나오고 있기 때문에 성공입니다.



정기 실행 이벤트 작성



디자이너의 "트리거 추가"버튼을 클릭하십시오.

트리거: EventBridge(CloudWatch Events)
규칙: 신규 규칙
규칙 유형: 일정식
스케줄식:cron(30 1 * * ? *)
※이 스케줄식은 오전 10시 30분에 실행됩니다.
 식의 시간은 UTC 시간이므로, 설정하고 싶은 시간으로부터 9시간 마이너스한 시간으로 설정합니다.
cron (분 시간 일 월 요일 명령)



"추가"버튼을 클릭하면 이제 설정이 완료됩니다.

좋은 웹페이지 즐겨찾기