https://youtube.com/watch?v=7uEDep9DFJs&list=PLRx0vPvlEmdD_AdG6fEwcfVrq5Qb3q_Ja&index=1 의 강의 내용 정리.
별도의 서버 없이 AWS Lambda 서비스 사이트에 함수를 입력해 주면 해당 함수를 자동으로 실행시켜줄 수 있음. 즉, 함수 작성 -> 자동 동작.
별도의 이벤트 발생 시 동작되도록 설정 가능.
데이터 처리 결과 혹은 로그를 DB에 적재 가능. 즉, 데이터 처리 내역 관리 가능.
이벤트의 종류는 다양함.
- 특정 로그 발생 시.
- 클라이언트의 요청이 발생했을 시. (웹 서버로서 구현될 경우.)
웹서버로서 구현 시, 클라이언트 -> API 게이트웨이 (클라이언트로부터 요청을 받음) -> AWS 람다 (요청에 대한 함수 실행) <-> DB.



https://www.youtube.com/watch?v=GNoZLjnwSP4&list=PLRx0vPvlEmdD_AdG6fEwcfVrq5Qb3q_Ja&index=2
별도의 디렉토리에 원하는 라이브러리를 설치.
1.cd dir_name: 원하는 디렉토리로 이동.
2.pip3 install {lib_name} -t .: 현재 디렉토리에 원하는 라이브러리 설치.
3.zip -r {lib_name}.zip .: 현재에 존재하는 모든 폴더를 lib_name.zip의 이름으로 압축.
4. 해당 압축 파일을 AWS 람다로 업로드.
https://www.youtube.com/watch?v=XsTBlXw98Bo&list=PLRx0vPvlEmdD_AdG6fEwcfVrq5Qb3q_Ja&index=3
함수마다 별도의 라이브러리를 업로드 하지 않고, 특정 레이어 밑으로 지정하여 함수마다 공통의 라이브러리를 사용할 수 있도록 할 수 있음.
1. "python"이라는 폴더를 생성하여, 해당 폴더에 모든 라이브러리 폴더 넣기.
2. "Library"라는 폴더 생성 후 "python" 폴더를 해당 폴더에 넣기.
3. "Library" 폴더를 압축하기.
4. layer 생성 -> zip 파일 업로드.
5. 람다 함수에서 위에서 생성한 레이어 추가.
https://www.youtube.com/watch?v=x0iyaENTxU0&list=PLRx0vPvlEmdD_AdG6fEwcfVrq5Qb3q_Ja&index=4
exports.handler = async (event, context, callback) => {
const operation = event.httpMethod;
switch (operation) {
case 'GET':
let data = {
'id' : 1,
'name' : 'Lee'
}
callback(null, {
'statusCode' : 200,
'headers' : {},
'body' : JSON.stringify(data)
});
break;
case 'POST':
callback(null, {
'statusCode' : 200
});
break;
default:
callback(new Error('Operation Error "${operation}"'))
}
};
2-1. API Gateway 서비스 페이지에서 API 생성. (REST, new API, 이름 설정)
2-1-1. 해당 API에서 리소스(ex, search) 생성.
2-1-2. 해당 리소스에 메소드(GET, POST, ...) 추가.
2-1-3. 해당 메소드 설정에서 실행될 람다 함수 지정 및 "Use Lambda Proxy integration" 체크.
2-1-4. Actions에서 Deploy API를 선택하여 해당 API를 배포.
2-2. 혹은 그냥 람다 함수에서 API Gateway 트리거 추가.
https://www.youtube.com/watch?v=wSRP4e0y5tQ&list=PLRx0vPvlEmdD_AdG6fEwcfVrq5Qb3q_Ja&index=5
html 코드 예시.
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<input type="button" value="GET" onClick="get()"/>
<script>
const URL = "위에서 작성한 API 주소";
function get() {
fetch(URL, {
headers: {
'Accept': 'application/json'
}
}).then(res => res.json())
.then(data => console.log(data))
.catch(err => console.error(err))
}
</script>
</body>
</html>
...
'headers': {'Access-Control-Allow-Origin': '*'},
...