[10주차] AWS - Lambda 사용하기
Lambda는 AWS의 서버리스 서비스이다.
처음에는 Blue print의 hello-world-python을 사용해보고,
그다음에는 palindrome을 판별해주는 node.js코드를 작성하여 lambda를 사용해보자.
Blue print의 hello-world-python 이용한 Lambda사용
1. Blueprint에서 hello-world-python선택
그리고 밑에 있는 파이썬 코드는 그대로 두고 함수를 생성한다.
그럼
이렇게 lambda가 생긴다.
이러한 lambda는 test를 해볼 수 있다.
2. Lambda test하기
test 메뉴에 들어가 input으로 들어갈 테스트 이벤트를 작성한다.
오른쪽 하단의 주황색 테스트 버튼을 누르면 실행 결과가 나오며, output을 볼 수 있다.
Lambda 코드를 바꿔서 실행해보자.
코드를 위와 같이 바꾸고, test 옆의 Deploy를 하고 저장을 한다.
test를 하면 output은 다음과 같다.
끝
Palindrome을 판별해주는 node.js코드를 작성하여 lambda를 사용
(Palindrome은 앞으로 읽어도 뒤로 읽어도 같은 단어를 말한다.)
(ex.racecar)
우리는 lambda와 API gateway를 사용할 것이다.
1. Lambda 함수 생성
2. index.js 수정
exports.handler = async (event, context, callback) => {
const string = event.key1;
const reverse = string.split('').reverse().join('');
const isPalindrome = (string == reverse);
const result = isPalindrome ? `${string} is a palindrome` : `${string} is not a palindrome`;
return result;
};
위와 같이 코드를 바꾸고, test에 값을 넣어보자.
내가 기대한 output은 racecar is a palindrome이다.
결과도 잘 나왔다.
그럼 이제 API Gateway로 가보자.
3. API Gateway 만들기
REST API를 구축한다.
설정을 위와 같이하고 API를 생성한다.
메서드에서 GET을 만들고 아까 만든 Palindrome Lambda함수를 설정한다.
그럼 다음과 같이 실행 과정을 도식화로 보여준다.
통합 요청을 눌러 URL에서 어떤 필드의 값을 Lambda로 전달할지 설정한다.
매핑 템플릿에서 URL?string=Value을 입력하면 Value를 Lambda로 전달하도록 설정.
근데 string : ~~~ 로 Lambda에 전달되기 때문에, Lambda코드를 살짝 수정한다.
key1에서 string으로 변경했다.
이제 API를 배포한다.
이 과정을 거치면 나오는 url을 통해 Lambda를 트리거할 수 있다.
url 뒤에 값을 붙이지 않아 string이 빈 채로 나왔다.
그럼 값을 넣어보자.
잘 실행된다. 끝