00. 준비사항
API Gateway의 주된 사용 목적은 Lambda일 것이라 생각한다. 또한 API Gateway를 잘 이해하기 위해서도 Lambda 예제가 좋을 것이라 믿는다. 그렇기 때문에 간단한 Lambda함수를 생성하자.
해당 글은 Lambda의 기초를 설명하는 글이 아니므로 Lambda 함수의 생성방법을 모른다면 다른 글을 참고하길 바란다.
예제 코드
'use strict';
console.log('Loading hello world function');
exports.handler = async (event) => {
let name = "you";
let city = 'World';
let time = 'day';
let day = '';
let responseCode = 200;
console.log("request: " + JSON.stringify(event));
if (event.queryStringParameters && event.queryStringParameters.name) {
console.log("Received name: " + event.queryStringParameters.name);
name = event.queryStringParameters.name;
}
if (event.queryStringParameters && event.queryStringParameters.city) {
console.log("Received city: " + event.queryStringParameters.city);
city = event.queryStringParameters.city;
}
if (event.headers && event.headers['day']) {
console.log("Received day: " + event.headers.day);
day = event.headers.day;
}
if (event.body) {
let body = JSON.parse(event.body)
if (body.time)
time = body.time;
}
let greeting = `Good ${time}, ${name} of ${city}.`;
if (day) greeting += ` Happy ${day}!`;
let responseBody = {
message: greeting,
input: event
};
// The output from a Lambda proxy integration must be
// in the following JSON object. The 'headers' property
// is for custom response headers in addition to standard
// ones. The 'body' property must be a JSON string. For
// base64-encoded payload, you must also set the 'isBase64Encoded'
// property to 'true'.
let response = {
statusCode: responseCode,
headers: {
"x-custom-header" : "my custom header value"
},
body: JSON.stringify(responseBody)
};
console.log("response: " + JSON.stringify(response))
return response;
};
01. API 생성
1. API 생성 버튼을 누른다.
2. HTTP API 구축을 선택한다.
3. 통합 추가를 눌러 Lambda를 선택한 다음 위에서 만든 Lambda 함수와 연결한다. 이후에 적절한 API 이름을 입력하고 다음을 누른다.
4. Lambda함수가 실행할 경로와 메서드를 선택한다. GET POST 등을 선택할 수 있고, ANY타입을 선택하면 모든 타입에 대해서 접근할 수 있다. 예제에서는 ANY타입을 이용한다. ( 이 때, /[루트] 경로는 사용할 수 없다. )
5. 스테이지를 구성한다. 스테이지란 배포 환경을 의미하며, 일반적으로 "Develop" 혹은 "Prodcution"과 같은 이름을 이용한다. 이때 자동 배포 옵션을 선택하면 변경사항이 있을 때 마다 새로 배포된다.
6. 검토 후 생성한다.
02. API 테스트
테스트를 위해 GET요청을 직접 요청해보자.
이 때 input은 Lambda 함수의 event 객체이다. 해당 값을 이용해서 어떤 method를 요청했는지 혹은 querystring, request body등을 가져와서 사용할 수 있다.
03. 그 외 설정
경로, 통합은 앞서 생성에서 설정했던 설정과 동일하다.
CORS 메뉴에서 CORS를 등록할 수 있다.
각종 모니터링 옵션을 사용할 수 있다.
'Develop' 카테고리의 다른 글
AWS Lambda 기본 기능 파악하기 (1) (0) | 2021.01.27 |
---|---|
API Gateway를 사용하여 API 구축하기 (3) REST API 생성 (0) | 2021.01.26 |
리팩토링 기법 - 함수 추출하기 (0) | 2021.01.24 |
API Gateway를 사용하여 API 구축하기 (1) 기본 개념 (0) | 2021.01.24 |
도커 SEARCH CLI 명령어 정리 (0) | 2021.01.23 |