[aws] lambda — python module

잘 안되도 열심히 medium에 적응중이네요. 하지만 너무 어렵네요 ㅎㅎ

aws lambda에서 python requests module사용하려고 하는데 해당 module를 다운 받아서 zip으로 압축해서 올려야 사용이 가능하다고 하네요. 필요한 module과 실행 소스를 같이 zip으로 압축해서 올리는 방법을 간단하게 정리합니다.

“medium” 디렉토리 만듭니다. “medium” 디렉토리 안에는 aws lambda가 실행할 “lambda_function.py”파일과 “lambda_function.py”에서 사용할 python module을 설치할 예정입니다.

python requests 모듈을 medium 디렉토리에 설치합니다.

pip install requests -t medium

medium 디렉토리에 “lambda_function.py” 파일을 생성하고 “lambda_handler” 메소드를 만듭니다.

#!/usr/bin/python
# -*- coding: utf-8 -*-
from __future__ import print_function

import requests

BOT_TOKEN = 'hide'
CHAT_ID = 'hide'


def lambda_handler(event, context):
response = requests.post( url='https://api.telegram.org/bot{0}/sendMessage'.format(BOT_TOKEN),
data={'chat_id': CHAT_ID, 'text': 'aws lambda test'}
).json()
return response

위 작업을 다 하면 다음과 같다. 아래 이미지는 medium 디렉토리 내용.

이제 medium디렉토리를 medium.zip으로 압축해서 aws lambda에 올리면 됩니다. 중요한 것은 medium.zip파일을 보면 lambda_function.py가 최상단에 와야 한다는 것 잊지마시고요. (압축을 잘못해서 이것 때문에 삽질을 ㅠ)

아래 이미지에서 Handler를 보시면 lambda_function.lambda_handler로 되어 있습니다. “lambda_function.py”에서 lambda_handler메소드를 실행하겠다고 생각하면 됩니다. (파일 이름과 메소드 이름을 변경해서 테스트는 안해봤는데 될꺼예요 ㅎㅎ)

처음하는 aws를 하려니 삽질은 너무 힘들네요 흑흑 ㅠ

다음에는 튼튼한 삽을 준비해야겠습니다. (__)