1 minute read

Lambda는 AWS의 서버리스 컴퓨팅 서비스로 서버를 프로비저닝할 필요 없이 특정 이벤트에 대한 응답으로 코드를 실행할 수 있다.

Lambda

image
image
image
image
image
image

REST API

  • Get : 일방적인 요청
  • Post : 요청(저장)
  • Patch: 요청(수정)

image
image
image
image
image
image
image
image

#set($allParams = $input.params())
{
#set($params = $allParams.get("querystring"))
#foreach($paramName in $params.keySet())
"$paramName" : "$util.escapeJavaScript($params.get($paramName))"
    #if($foreach.hasNext),#end
#end
}
  • 테스트

image
image

주소 할당

image
image

웹페이지에 입력

https://xu3kcc4xt0.execute-api.ap-northeast-2.amazonaws.com/test/myf1?num1=10&num2=20

image

Lambda와 RDS연동

RDS 생성

image

Python 설정

pip install pymysql
  • Python에서 Mysql 불러오기 ```python import pymysql

conn = pymysql.connect( host=’’, user=’’, password=’’, db=’’, charset=’utf8’)

curs = conn.cursor()

sql = “SELECT sage FROM student” curs.execute(sql) rows = curs.fetchall() conn.close() print(rows)


### RDS설정
#### DB만들기
- workbench를 이용해 내가 만든 RDS서버에 접속해 DB를 만들고 데이터를 몇개집어 넣어본다.
```sql
CREATE DATABASE kjh_db;
use kjh_db;
CREATE TABLE student (sname VARCHAR(10), sage INT);
INSERT INTO student VALUES('kim', 10);
INSERT INTO student VALUES('lee', 20);
INSERT INTO student VALUES('park', 30);
INSERT INTO student VALUES('sim', 10);

python DB연동하고 lambda에 적용시키기

import pymysql


conn = pymysql.connect(
    host='database-1.c8svrynkh0md.ap-northeast-2.rds.amazonaws.com',
    user='admin',
    password='qwer1234',
    db='kjh_db',
    charset='utf8')

curs = conn.cursor()

sql = "SELECT sage FROM student" # student DB에 sage정보를 뽑아낸다.
curs.execute(sql)
rows = curs.fetchall()
conn.close()
print(rows)

입력했던 코드를 실행해보면

image
방금 mysql에 입력했던 정보 중, sage 정보가 출력된다.

Lambda에 적용

설정하기

c드라이브에 test디렉토리 생성
image
image
CMD를 실행시켜 test디렉토리 경로로 설정 하고 다음 명령어 실행

pip install pymysql -t ./

image
다음 코드를 적은 python 파일을 lambda_function.py로 변경

import pymysql


def lambda_handler(event, context): 
    conn = pymysql.connect(
        host='database-1.c8svrynkh0md.ap-northeast-2.rds.amazonaws.com',
        user='admin',
        password='qwer1234',
        db='kjh_db',
        charset='utf8')
    
    curs = conn.cursor()
    
    sql = "SELECT sage FROM student"
    curs.execute(sql)
    rows = curs.fetchall()
    conn.close()
    print(rows)
    return rows

image
다음 파일들이 있으면 된다.
이제 test 디렉토리를 zip으로 압축한다.

적용하기

image
aws lambda에 방금 만든 test.zip파일을 업로드 하고 실행시켜본다.
image
다음과 같이 출력이 되면 성공