오늘은 Amazon API Gateway와 Lambda를 연결해보도록 하겠다.
API Gateway 란 ?
Amazon API Gateway는 간단하게 설명하자면 규모와 관계 없이 REST 및 WebSocket API를 생성, 게시, 유지, 모니터링 및 보호하기 위한 AWS 서비스입니다.
자세한 설명은 아래사이트에서 확인하실 수 있습니다.
https://docs.aws.amazon.com/ko_kr/apigateway/latest/developerguide/welcome.html
API Gateway 와 Lambda 연결하기
1. Lambda 생성
Lambda function 이름을 my-function2로 생성합니다.
생성방법은 아래게시글에 나와있습니다.
https://csy7792.tistory.com/277
생성 후 코드를 아래와 같이 바꿔줍니다.
exports.handler = async (event) => {
console.log(event);
let myParam = event.myParam;
const response = {
statusCode: 200,
body: JSON.stringify(myParam)
};
return response;
};
2. API Gateway 생성
API Gateway를 검색하면 아래와같은 화면이 나옵니다.
API 생성을 클릭하여 줍니다.
생성을 클릭하면 아래와 같은 화면이 나옵니다.
이 예제에서는 REST API를 선택하겠습니다.
REST API - 구축을 클릭합니다.
구축을 누르면 아래와 같은 화면이 나옵니다.
프로토콜을 REST, 새 API 생성을 선택 후 API 이름을 지정한 후 API 생성을 클릭합니다.
생성하면 아래와 같은 화면으로 이동하게 됩니다.
작업 - 메서드생성을 클릭합니다.
메서드 생성을 클릭하면 아래 화면이 나옵니다.
GET을 선택하게 되면 화살표가 있는곳에 V 아이콘이 생성됩니다.
V 아이콘을 클릭합니다.
V를 클릭하게 되면 설정을 하는 화면이 생성됩니다.
Lambda함수에 위에서 생성한 my-function2를 넣어주고 저장을 클릭합니다.
저장을 클릭하면 권한관련한 팝업이 하나 나타나게 됩니다.
확인을 클릭해줍니다.
저장을 하면 GET 함수의 / - GET - 메서드 실행 창을 확인할 수 있습니다.
메서드 실행 창에서 통합요청을 클릭합니다.
클릭하게 되면 아래와 같은 창이뜹니다.
Lambda 프록시 통합 사용은 체크하지 않습니다.
매핑 템플릿을 클릭합니다.
매핑 템플릿을 클릭한다면 아래와 같은 화면이 생성됩니다.
매핑 템플릿 추가를 클릭 -> appliaction/json을 입력하고 추가합니다.
추가하면 템플릿을 입력하는 창이 나옵니다.
저 부분에 받을 파라미터들을 JSON 타입으로 입력해줍니다.
저는 myParam이라는 파라미터명으로 보낼것이기때문에 아래와 같이 입력합니다.
3. API Gateway 배포
생성을 완료했다면 배포를 해야합니다.
작업- API 배포를 클릭합니다.
배포 스테이지에서 [새 스테이지]를 클릭 후 스테이지 이름과 설명을 적습니다.
저는 prod라는 이름으로 정했습니다.
배포가 정상적으로 됐다면 왼쪽 메뉴화면에서 스테이지를 클릭합니다.
클릭하면 아래와 같은 화면이 나타나게됩니다.
방금 우리가 추가했던 GET을 클릭하면 호출할 수 있는 URL이 존재합니다.
확인한 URL 뒤에 우리가 API Gateway - 템플릿에서 추가한 파라미터를 URL 뒤에 붙여줍니다.
저는 myParam이라는 파라미터를 추가했고 URL은 위에 보시는것과 같습니다.
URL?myParam=~~ 같은 형식으로 호출합니다.
정상적으로 동작하는것을 확인하실 수 있습니다.
참고자료
https://docs.aws.amazon.com/ko_kr/apigateway/latest/developerguide/welcome.html
'컴퓨터공학 기초 > 인프라' 카테고리의 다른 글
[인프라 도전기] ec2 에 배포하기 - 2부(java 설치하기) (0) | 2020.09.21 |
---|---|
[인프라 도전기] ec2 에 배포하기 - 1부(ec2 생성하기) (0) | 2020.09.17 |
[AWS] Lambda 생성 후 테스트해보기 (0) | 2020.08.15 |
[Linux] yum groupinstall "Development Tools" not working (0) | 2020.08.02 |
[Linux] firewalld FirewallD is not running (0) | 2020.08.01 |
댓글