이전 게시물에서는 AWS Lambda를 이용한 Serverless의 특징을 알아봤다.
이번에는 AWS Lambda를 이용해 간단한 API를 만들어보고 동작을 확인해보도록 하자.

AWS Lambda 서비스의 대시보드에서 위와 같은 화면을 만날 수 있다.
오른쪽 위의 함수 생성 버튼을 클릭!

이런 화면이 우리를 반겨준다.
함수의 이름을 정해주고, 런타임 환경을 지정해준다.
Node.js, Java, Python, Go 등 다양한 언어를 이용해 런타임 환경을 구성할 수 있으며, 나는 파이썬을 이용하기로 했다.
기본 실행 역할 변경 이라는 탭을 볼 수 있는데, 해당 Lambda 함수에 접근할 수 있는 역할을 생성하거나, 기존의 역할을 부여할 수 있다.
새 역할 생성을 선택했지만, 기존 역할이 있다면 선택해도 무방하다.
이후 함수 생성을 클릭해주자.
람다 함수가 생성됐다면, 아래와 같은 인터페이스를 확인할 수 있다.
업데이트 이전에는 수정하기 힘든 에디터를 지원해줬는데, vscode 인터페이스를 제공하도록 바뀌었다.
이 람다 함수를 호출한다면 lambda_hander() 함수가 실행된다.

Request Body에 담긴 값을 그대로 리턴할 수 있도록 코드를 약간 수정하자.
def lambda_handler(event, context):
# TODO implement
return {
'statusCode': 200,
'body': json.dumps(event["key"]) # Body의 "key"를 읽어와 반환
}
Deploy 버튼을 클릭해 수정사항을 배포해줄 수 있다.
그리고 아래의 Test 버튼을 눌러준다면, 새로운 테스트 이벤트를 생성하거나 기존 테스트 이벤트를 사용할 수 있다.
간단한 테스트 이벤트를 만들어보자.

테스트 이름을 정해주고, 요청 값의 Body가 될 Event JSON을 작성해준다.
테스트가 성공적이라면, 반환값이 내가 작성한 Hello from Lambda! 가 반환될 것이다.
Save 를 클릭해 작성한 테스트 이벤트를 저장해주고, 이 테스트 이벤트를 실행해보자.

성공적으로 수행됨을 확인할 수 있었다.
이제 API Gateway를 통해 Lambda 함수를 배포해보자.
API Gateway 를 이용한다면 배포할 API의 경로, HTTP Method 등을 설정하고
서비스의 API들을 통합적으로 관리할 수 있기 때문에 편리하다.

API Gateway 서비스에 들어가면 해당 대시보드를 확인할 수 있는데, 오른쪽 위 API 생성 버튼을 클릭하자.

다양한 API들을 생성할 수 있지만, 오늘 실습에서는 REST API를 생성해보자. 구축을 클릭해 API를 생성해준다.

식별하기 편리한 API 이름을 설정해주고 API 생성 버튼 클릭

그렇다면 해당 대시보드를 확인할 수 있다. Lambda 함수와 연결하기 전에 경로를 설정해주도록 하자.
왼쪽 상단의 리소스 생성을 클릭

이런 화면을 확인할 수 있을텐데, 리소스 이름 을 입력해 경로를 설정할 수 있다.
내가 설정한 경로는 /hello 임을 알 수 있다.

경로가 성공적으로 생성된 것을 확인할 수 있다.
이제는 Lambda 함수와 연결해주기 위해 오른쪽 중앙의 메서드 생성을 클릭

메서드 유형을 통해 HTTP Method를 명시한다.
통합 유형은 Lambda, 그 아래에 연결하고자 하는 람다 함수를 선택해준다.

다시 이 대시보드로 돌아왔다. Lambda 함수가 연결된 것을 확인할 수 있다.
이제 배포를 위해 오른쪽 상단의 API 배포 를 클릭

이러한 창을 확인할 수 있다. 생성된 스테이지가 없기 때문에 새로운 스테이지를 생성해준다.
이 스테이지의 이름은 API 경로의 최상단 경로가 된다. 즉, 오늘 실습에서 API 경로는 /prod/hello가 되겠다.

왼쪽 탭에서 스테이지를 클릭한다면 해당 대시보드를 확인할 수 있다.
URL 확인하고, 포스트맨을 통해 테스트해보자.

성공적으로 실행됨을 확인할 수 있다.
오늘은 Lambda 서비스를 통해 서버리스 API를 작성하고, API Gateway를 통해 이를 배포해보았다.
다음 게시글에는 LangChain 프레임워크를 통해 뉴스 요약 API를 만들어보도록 하겠다.