[AWS] Lambda
Lambda는 AWS의 서버리스 컴퓨팅 서비스로 서버를 프로비저닝할 필요 없이 특정 이벤트에 대한 응답으로 코드를 실행할 수 있다.
Lambda
REST API
- Get : 일방적인 요청
- Post : 요청(저장)
- Patch: 요청(수정)
#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
}
- 테스트
주소 할당
웹페이지에 입력
https://xu3kcc4xt0.execute-api.ap-northeast-2.amazonaws.com/test/myf1?num1=10&num2=20
Lambda와 RDS연동
RDS 생성
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)
입력했던 코드를 실행해보면
방금 mysql에 입력했던 정보 중, sage 정보가 출력된다.
Lambda에 적용
설정하기
c드라이브에 test디렉토리 생성
CMD를 실행시켜 test디렉토리 경로로 설정 하고 다음 명령어 실행
pip install pymysql -t ./
다음 코드를 적은 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
다음 파일들이 있으면 된다.
이제 test 디렉토리를 zip으로 압축한다.
적용하기
aws lambda에 방금 만든 test.zip파일을 업로드 하고 실행시켜본다.
다음과 같이 출력이 되면 성공