Lambda의 RDS 자습서
예상되는 테이블 구조
# テーブル名: link_clicks
| カラム名 | description |
| path | urlのパス |
| clicks | リンクのクリック数 |
| stat_date | 集計日 |
1. Lambda 함수 만들기
lambda를 사용하여 RDS (mysql)에 연결하고 쿼리 매개 변수 (path)에 따라 정보를 가져 와서 반환하는 프로그램을 파이썬으로 작성합니다.
1.1 파이썬 패키지 (api) 만들기
mkdir api
1.2 파이썬 종속 패키지 설치
mysql에 연결하기 위해 PyMySQL 설치
pip install PyMySQL -t api
1.3 메인 함수를 기재한다
메인 함수(handler) 기재 파일과 설정 파일을 준비한다
(YOUR_XXX 대체)
api/api.py
# -*- coding: utf-8 -*-
import sys
import logging
import rds_config
import pymysql
import datetime as DT
import json
#rds settings
rds_host = rds_config.db_host
name = rds_config.db_username
password = rds_config.db_password
db_name = rds_config.db_name
logger = logging.getLogger()
logger.setLevel(logging.INFO)
try:
mysql_client = pymysql.connect(rds_host, user=name, passwd=password, db=db_name, connect_timeout=5)
except:
logger.error("ERROR: Unexpected error: Could not connect to MySql instance.")
sys.exit()
logger.info("SUCCESS: Connection to RDS mysql instance succeeded")
def handler(event, context):
"""
This function fetches content from mysql RDS instance
"""
path = event["path"]
query = "select sum(clicks) from link_clicks where path = '%(path)s' group by path" % dict(path=path)
logger.info(query)
results = []
with mysql_client.cursor() as cur:
cur.execute(query)
for row in cur:
clicks = int(row[0])
results.append({"clicks": clicks})
return json.dumps(results)
api/rds_config.py
db_host = "YOUR_HOST"
db_username = "YOUR_USERNAME"
db_password = "YOUR_PASSWORD"
db_name = "YOUR_DB_NAME"
1.4 lambda에 프로그램 업로드
deploy.sh
# zip作成
(cd api && zip -r - *) > api.zip
# create lambda function
## YOUR_ROLEにはlambda-vpc-execution-roleを指定すること
aws lambda create-function \
--region YOUR_REGION \
--function-name api \
--zip-file fileb://api.zip \
--role YOUR_ROLE \
--handler api.handler \
--runtime python2.7 \
--vpc-config SubnetIds=YOUR_SUBNET_IDS,SecurityGroupIds=YOUR_SECURITY_GROUP_ID
# update lambda function
aws lambda update-function-code \
--region YOUR_REGION \
--function-name api \
--zip-file fileb://api.zip
2. Lambda 함수 확인
2.1 Lambda 함수가 업로드되었는지 확인
아래를 방문하여 api 함수가 추가되었는지 확인합니다.
htps : // 아 p의 r ぇ아 st-1. 안녕하세요. 아 ws. 아마존. 이 m / ぁ mb다 / 칭찬? 레기온 = 아 p의 r ぇ 아 st-1 # / 훙 c 치온 s?ぢspぁy=ぃst
2.2 테스트 이벤트 설정
actions > configure test event에서 테스트 이벤트 등록
설정한 것은 다음과 같습니다.
{
"path": "/11111"
}
2.3 테스트하기
위 이미지에서 save&test를 클릭하여 테스트
마지막으로
위의 단계에서 lambda => RDS에 연결하여 데이터를 볼 수 있습니다.
자세한 것은 aws의 문서에도 쓰여 있으므로, 그쪽을 참고로 해 주세요
htp // // cs. 아 ws. 아마존. 이 m / 그럼 _ jp / ぁ mb다 / ㅁ st / dg / vp ccds-c 어서 - ぁ mb다- 푹 c 치온. HTML
Reference
이 문제에 관하여(Lambda의 RDS 자습서), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/vankobe/items/31acb99cd8eb106a019d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)