Lambda 함수라는 형식의 함수를 사용하지만 프로그래밍 언어로 작성한 코드를 바타응로 ‘Lambda 콘솔’을 사용하여 GUI를 만듦
Lambda 함수는 Lambda 서비스에 저장됨
임의의 작업이 트리거가 되어 함수를 호출해 특정 AWS 리소스에서 작업이 수행됨
대표적인 예는 S3 버킷에 이미지를 저장하면 썸네일 생성 함수를 호출하여 자동으로 썸네일이 작성되는 예
사용자 → API Gateway → Lambda (라우터) → 비즈니스 로직 → DB → 응답
create/handler.js
)const { get_create_query } = require('./get_create_query');
const { execute } = require('../utils/db');
exports.handler = async (event) => {
const body = JSON.parse(event.body);
const query = get_create_query(body);
const result = await execute(query);
return {
statusCode: 200,
body: JSON.stringify({ success: true, data: result }),
};
};
설명:
event.body
에서 요청 데이터를 파싱get_create_query
)execute
)const mysql = require('mysql2/promise');
const pool = mysql.createPool({
host: process.env.DB_HOST,
user: process.env.DB_USER,
password: process.env.DB_PASSWORD,
database: process.env.DB_NAME,
});
exports.execute = async (query) => {
const [rows] = await pool.query(query);
return rows;
};
process.env
)를 통해 DB 접속 정보 관리/projects
, /annotations
)를 정의하는 레이어[클라이언트 요청]
↓
[API Gateway]
↓ (라우팅 규칙에 따라)
[Lambda 함수 실행]
↓
[DB 쿼리, 처리 등]
↓
[응답 → API Gateway → 사용자]
/projects
{
"resource": "/projects",
"httpMethod": "POST",
"body": "{\"title\": \"서울 도로\"}"
}
API Gateway 설정:
{
"/projects": {
"POST": "lambda:business-app-projects-create"
}
}
→ API Gateway가 이 요청을 자동으로 해당 Lambda에 전달하고, 결과를 사용자에게 전달
항목 | 설명 |
---|---|
이벤트(event) | Lambda로 전달되는 요청 정보(JSON 형태) |
Context | 실행 환경 정보 (남은 시간, 함수 이름 등) |
Cold Start | 첫 실행 시 초기화 지연 (DB 연결 등 주의 필요) |
IAM Role | Lambda가 DB 또는 S3 등에 접근하기 위한 권한 설정 |