Serverless 프레임워크를 이용한 람다 프로 그래밍 #1
핵심 강의
동영상 준비 중강의 개요
Serverless 프레임워크과 AWS를 이용하여 웹 서버를 설치하거나 사용하지 않고 RESTful 방식으로 웹 프로그래밍하는 방법을 배웁니다.
강의 전 준비 사항
- AWS 가입
- "액세스키ID"와 "비밀액세스키"
- nodejs & npm 설치
이 강의에서 다룰 내용
- Serverless 프레임워크의 핵심 사용법
- hello world 구현
- mysql에서 테이블 정보를 가져와서 목록 표시하기
Serverless 프레임워크 설치 및 설정
우선 프로젝트를 시작할 폴더를 생성합니다. 저는 "D:\Work\temp"라는 폴더를 사용하였습니다. 여러분들은 여러분들이 원하는 폴더를 각자 선택하시면 됩니다.
D:\Work> mkdir temp D:\Work> cd temp
아래와 같이 터미널 창에서 Serverless 프레임워크를 설치합니다. 물론 nodejs와 npm이 설치되어 있어야 합니다.
D:\Work\Temp> npm install -g serverless
AWS의 람다와 s3 등을 사용할 수 있는 권한이 있는 보안키가 필요합니다. 이부분은 다른 강의에서 다루도록 하겠습니다.
키를 확보하였으면 터미널 창에서 아래와 같이 저장합니다. xxxxxx 대신 자신의 "액세스키ID"와 "비밀액세스키"를 입력하시면 됩니다.
D:\Work\Temp> serverless config credentials --provider aws --key xxxxxx --secret xxxxxx
이 강의에서는 aws의 람다를 이용하고 언어는 python3를 사용할 것입니다. 따라서 아래와 같이 터미널에서 프로젝트를 생성합니다.
D:\Work\Temp> serverless create -t aws-python3
프로젝트 생성이 완료되면 아래와 같이 3개의 파일이 생성됩니다. 이중에서 handler.py와 serverless.yml 파일 두 개가 중요합니다
yaml 파일 설정
우리가 만드는 프로젝트(서비스)에 대한 전반적인 설정을 시작합니다. serverless.yml 파일을 열어서 아래와 같이 수정합니다.
service: test
provider:
name: aws
region: ${opt:region, 'ap-northeast-2'}
runtime: python3.7
functions:
hello:
handler: handler.hello
events:
- http:
path: test/hello
method: get
cors: true
- 1: 서비스 이름을 입력합니다. 작성하려는 프로젝트의 특징을 잘 나타내는 이름을 선택하시면 됩니다.
- 5: 서비스 지역을 "ap-northeast-2"로 정하였습니다. 서울을 의미합니다.
- 6: 사용할 언어는 python 3.7 버전입니다.
- 8-15: 서비스에 포함 될 함수들의 목록입니다. 여기서는 hello 함수 하나만 정의하고 있습니다.
- 9: 함수의 이름입니다. 함수의 기능이 잘 나타나도록 이름을 정하시면 됩니다.
- 10: 외부에서 요청이 들어오면 실제로 실행할 함수의 이름입니다. 9: 라인의 이름과 동일하게 작성하시되 앞에 "handler."를 붙여주시면 됩니다.
- 13: 이 함수를 요청할 때 사용될 주소입니다. "서비스이름/함수이름" 형식으로 표현했습니다.
- 14: 호출 방식을 선택합니다. (GET, POST 등)
- 15: 람다 함수와 도메인이 다른 곳에서도 사용할 수 있도록 CORS(Cross-Origin Resource Sharing)를 true로 설정해줍니다.