지금까지 만들어진 서버쪽
소스 코드는 https://github.com/lee-seul/recording-server 로 가면 볼 수 있다.
지난 장에 이어서 이번 장에서는 Chalice 설치, 설정 및 공식 문서에 나오는 튜토리얼을 진행한다.
3. Chalice 설정 및 튜토리얼
여기서 설치 및 설정에 python 가상 환경에 관한 내용은 생략된다.
python 가상 환경에 관한 내용은 https://wayhome25.github.io/django/2017/04/29/python-dev-environments/
python은 꼭 2.7 아니면 3.6으로 사용
가상 환경 설정이 끝났다면 해당 디렉토리로 이동하여 chalice를 설치 한다.
$ pip install chalice
설치가 끝났다면 Chalice 프로젝트를 하나 만들어 보자
chalice new-project {프로젝트 이름}이라는 명령어를 사용하면 된다.
$ chalice new-project record
명령어를 실행하고 나면 {프로젝트 이름}으로 된 디렉토리가 하나 생성된 것을 확인할 수 있다.
$ cd record
$ ls -la
drwxr-xr-x .chalice
-rw-r--r-- app.py
-rw-r--r-- requirements.txt
디렉토리에 가보면 위와 같은 구조의 디렉토리가 만들어 진 것을 확인할 수 있다.
여기서 app.py의 내용을 확인 해보면 flask를 사용해본 사람이라면 익숙한 구조의 코드를 볼 수 있다.
$ cat app.py
from chalice import Chalice
app = Chalice(app_name='record')
@app.route('/')
def index():
return {'hello': 'world'}
app_name이 record인 애플리케이션에 ‘/’라는 경로를 가지는 API가 구현되어 있는 것을 볼 수 있다.
실제 샘플 코드가 동작하는지 보기 위해서 샘플 앱 그래도 배포를 한번 해본다.
$ chalice deploy
chalice deploy를 실행했을 때
“botocore.exceptions.NoCredentialError: Unable to locate credentials”
라는 에러를 보게 된다면 AWS credential 설정이 없다는 뜻이므로 credential 세팅을 해줘야 한다.
AWS Credential은 아래 링크 글을 따라하면 된다.
https://lee-seul.github.io/other/2018/05/13/AWS-Credentials.html
문제가 없거나 AWS Credential을 설정해줬다면
$ chalice deploy
Creating deployment package.
Updating policy for IAM role: record-dev
Updating lambda function: record-dev
Updating rest API
Resources deployed:
- Lambda ARN: arn:aws:lambda:ap-northeast-2:641123456845:function:record-dev
- Rest API URL: https://tijmlg2342.execute-api.ap-northeast-2.amazonaws.com/api/
위와 같은 결과를 얻을 수 있다.
REST API URL을 통해 index라는 이름의 API를 실행해보고면
$ curl https://tijmlg2342.execute-api.ap-northeast-2.amazonaws.com/api/
{"hello": "world"}
{“hello”:”world”} 라는 바디를 가진 response를 얻을 수 있다.
여기까지 Chalice 공식 문서에 나와있는 튜토리얼을 진행해보았고 다음장에서는 진짜 녹음기 앱을 위한 API들을 구현해 보도록 하겠다.