관리 메뉴

한다 공부

[AWS] Lambda를 사용해보자 (+ REST API) 본문

Dev/Cloud

[AWS] Lambda를 사용해보자 (+ REST API)

사과당근 2022. 10. 1. 18:34

AWS 를 쓰다보면 사용하다보면 어쩐지 사용하던 기능만 사용하게 된다.

EC2 .. S3 .. RDS .. ELB .. 

그런데 생각보다 람다를 사람들이 많이 사용해서 함 사용해보고 싶었다,,

 

그러던 와중 마침 클라우드 컴퓨팅 수업에서

AWS 람다를 다루는 과제를 내주셔서 과제하면서 공부한 것 정리 !^^

 

Lambda

AWS에서 Lambda를 검색해 들어가보자

그리고 오른쪽 상단의 함수 생성을 누르자.

 

함수 이름을 작성하고, 원하는 언어를 선택하고 아래 함수 생성을 누르자..

 

그러면 위와 같이 람다 함수를 입력할 수 있는 에디터창이 나온다.

람다 함수로 넘어간 json data는 event에 담겨온다.

 

{ 'value': 100 } 으로 데이터를 넘겼다면 event['value'] 과 같은 방식으로 접근하여 100 이라는 데이터를 꺼내올 수 있다.

 

event 에서 value 꺼내기

Test를 눌러 테스트를 생성하자

Test 코드에는 { 'value': 100 } 처럼 이벤트 값을 넣을 수 있다.

그리고 Deploy를 눌러 코드를 저장하고

Test 를 다시 눌러, 아까 만든 테스트를 실행하자

 

위와 같이 테스트가 성공적으로 실행된 것을 볼 수 있다.

이것을 REST API로 만들어서, URL 쿼리 스트링으로 값을 전달받을 수 있도록 해보자!


REST API

트리거 추가를 누르자

 

API GateWay를 선택하고, REST API를 선택한 후

Security는 Open으로 설정했다.

추가 설정에서 Deployment stage가 기본적으로 default라고 되어있을텐데, 이 부분은 uri의 일부가 되고, 원하는대로 수정할 수 있다. 나는 api라고 변경했다.

추가 버튼을 누르자.

 

구성에서 다음과 같이 설정된 것을 볼 수 있다.

이 API endpoint가 내 API의 URL이 된다.

하지만 바로 들어가보면

{"message": "Internal server error"}

 위와 같은 오류가 뜬다. 설정과 코드를 바꿔주자.

빨간 동그라미 부분을 클릭하자.

 

위의 화면에서 "메서드 요청" 부분을 누르자.

 

그리고 설정을 아래와 같이 변경하자.

요청 검사기 부분을 변경하고, URL 쿼리 문자열 파라미터를 추가했다.

설정을 마쳤다면, 빨간 동그라미 부분의 "메서드 실행"을 누르자

 

아래와 같은 테스트 부분을 누르자

GET 메서드를 선택하고, 쿼리 문자열에 value=원하는숫자 를 입력해준다.

그리고 테스트를 누르면 오류가 난다.

코드를 수정해줘야하기 때문이다.

 

다시 람다 함수로 돌아가서 코드를 수정해주자

event['value'] 로 받던 부분을, event['queryStringParameters']['value'] 로 변경해주자.

그리고 deploy를 눌러 코드를 업데이트하자

(이때 람다 함수 Test를 하면 오류가 뜰 수도 있다.)

 

다시 API Gateway 설정하던 곳으로 돌아가보면,

메서드 테스트가 성공적으로 되는 것을 알 수 있다!

 

 

API 접속을 위해 아까 보았던 API endpoint 로 접속을 해보자

엔드포인트 주소는 여기서 알 수 있다.

https://endpoint주소/api/test/?value=1500 과

엔드포인트 주소 뒤에 {?value=원하는값} 을 쿼리스트링으로 넣으면

해당 값이 정상적으로 화면에 출력되는 것을 알 수 있다.

 

'Dev > Cloud' 카테고리의 다른 글

[AWS] EC2, RDS 를 사용하여 Django 프로젝트 배포하기  (0) 2022.05.17