def sum(x, y):
result = x + y
return result
이런 함수를 만들어도 괜찮다.
일단은 API를 만들어보고 이해하기 위함이니까...
내 코드는 이렇다.
_hunasiu,_menu()는 당연히 휴나지움의 메뉴를 str 형식으로 긁어오는 함수다.
중요한 것은 lambda_handler()다. 이건 함수명도 굉장히 중요한데,
[AWS] API Gateway로 API를 만들어보자 2 에서 미리 말한 바 있지만,
AWS Lambda에서 아래와 같은 식으로 handler를 정의해야 하기 때문이다.
어쨌든 저렇게 하고 이를 zip 파일로 만들어 업로드하면 된다.
** pip을 사용해 기본 라이브러리가 아닌 모듈을 받을 필요가 있을 경우, linux 창에서 아래와 같이 함수를 실행해 본다.
$ python menu_lambda_function.py
Traceback (most recent call last):
File "menu_lambda_function.py", line 3, in <module>
import facebook
ImportError: No module named facebook
내 경우에는 facebook 모듈을 필요로 했다.
그게 뭐든지간에 필요하다면 아래와 같이 해당 폴더 아래에 모듈을 받는다.
$ sudo pip install {모듈이름} -t ./
그러면
{모듈이름}
{모듈이름}-0.0.dist-info
이런 파일이 한 두개 생길 것이다.
이걸 내 python 파일과 함께 zip파일로 묶어 업로드하면 된다.
전부 완료했으면 이제 API Gateway 페이지로 가서 내 API를 테스트해보자.
쨔쟌~
오른쪽 Response Body에 성공적으로 휴나지움의 메뉴가 나왔다.
* 물론 API를 만들 때 response를 저렇게 막무가내로 하면 안 된다.
웬만하면 json 형태로 모두가 알아볼 수 있게 파싱해서 주자.
* Lambda python 함수를 만들 때 반드시 test 파일을 따로 만들어 업로드 전 모든 API 함수를 테스트해야 한다.
하나면 몰라도 API가 수십 개로 늘어나게 되면 그만큼 못보고 지나치는 오류가 잦아지게 되는데,
최악의 경우에는 업로드한 뒤 API 전체가 먹통이 되는 경우도 있다...(물론 내 얘기다.)
[AWS] API Gateway로 API를 만들어보자 1 : API 틀 갖추기
[AWS] API Gateway로 API를 만들어보자 2 : Lambda 활용하기
[AWS] API Gateway로 API를 만들어보자 3 : Lambda 함수 만들기
'개발 > AWS' 카테고리의 다른 글
[AWS] Route 53과 CloudFront로 S3 웹사이트 올리기 (5) | 2019.03.09 |
---|---|
[AWS] Route 53과 S3로 정적 웹사이트 올리기 (4) | 2019.02.28 |
AWS EC2 만들기 (4) | 2016.12.26 |
[AWS] API Gateway로 API를 만들어보자 2 : Lambda 활용하기 (2) | 2016.11.30 |
[AWS] API Gateway로 API를 만들어보자 1 : API 틀 갖추기 (4) | 2016.11.30 |
댓글