RestFul API

RestFul API를 Serverless Framework로 연결하기

567Rabbit 2024. 5. 23. 13:34


*** 아나콘다 프롬프트에서 가상환경 만들면서 flask에 필요한 라이브러리를 다운 받아준다 ***

 

conda create -n lambda_310 python=3.10

pip install flask flask-restful mysql-connector-python psycopg2-binary passlib flask-jwt-extended email-validator flask-uploads uuid numpy pandas scikit-learn==0.23.2

 

 

node.js 다운받기

 

https://nodejs.org/en/

 

Node.js — Run JavaScript Everywhere

Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.

nodejs.org

 

 

 

 

Severless 회원가입하기

 

https://www.serverless.com/

 

Serverless: Zero-Friction Serverless Apps On AWS Lambda & Beyond.

Easily build auto-scaling, low-overhead applications on AWS Lambda, API Gateway, DynamoDB, and other managed services with the Serverless Framework.

www.serverless.com

 

 

Github로 회원가입하였는데, google로 하여도 됨

 

 

 

 

Serverless Framework 설치

 

- cmd(명령프롬프트) 실행하기

 

 

cd로 깃허브로 경로이동한 후에 설치 (공백 주의하기)

npm install -g serverless

 

 

 

 

 

 

앞에서 생성한 유저를 Serverless에 설정한다

 

cmd에서 Github 경로로 이동해준다

 

 

serverless 라고 입력한다

 

serverless

 

 

방향키로 Flask API로 이동한다

 

 

 

 

로그인 선택

 

 

 

 

 

 

 

 

https://codebunny99.tistory.com/104

 

AWS IAM 사용자 추가하고 인증키 얻는 방법

IAM 사용자 추가      정책 아래 8개 체크    생성한 사용자로 들어가서 액세스 키(인증 키) 만들기    사용하기에 적합한 액세스 키를 골라준다    .csv 파일 받아주기 -> 완료     사

codebunny99.tistory.com

 

 

 

 

다운로드 받은 .csv 파일을 열어 입력한다

Enter AWS Access Key ID >> 자신의 Aceess key ID

Enter AWS Secret Access Key ID >> 자신의 Secret Access key

 

 

 

 

 

VSCode 열기

 

 

깃허브 폴더에 aws-recipe-server 폴더가 생성되었다. 이 폴더를 vscode로 열어주자

 

 

 

 

아까 만든 가상환경으로 설정해준다.

 

 

 

 

VSCode 터미널 cmd 창에서 설치하기

npm install serverless-wsgi --save-dev

 

 

 

serverless.yml 파일 맨 아래에 추가(삽입)하기

package:
  individually: true
  exclude:
    - node_modules/**  # node_modules 폴더와 그 하위 모든 파일 및 디렉토리 제외
    - .git/**  # .git 폴더와 그 하위 모든 파일 및 디렉토리 제외
    - tests/**  # tests 폴더와 그 하위 모든 파일 및 디렉토리 제외
  include:
    - src/**  # src 폴더와 그 하위 모든 파일 및 디렉토리 포함
    - handler.py  # 루트 디렉토리의 handler.py 파일 포함
    - config/**  # config 폴더와 그 하위 모든 파일 및 디렉토리 포함

 

 

 

VSCode 터미널 cmd 창에서 실행하기

sls deploy

 

 

 

 

 

그 전에 API를 만들었던 recipe_server에서 

 

(1) config.py, mysql_connection.py, utils.py를 aws-recipe-server 로 옮긴다

(2) resources 폴더 자체를 aws-recipe-server 로 옮긴다

(3) ( aws-recipe-server에 있는 app.py를 삭제하고 ) app.py를 aws-recipe-server 로 옮긴다

 

 

=> 옮긴다

 

 

 

 

requirements.txt에 삽입한다

 

 

 

 

 

serverless.yml에 수정, 삽입한다

 

 

 

 

 

저장하고, VSCode cmd로 가서 입력한다

sls deploy

 

 

 

 

endpoints를 copy하기

 

 

 

 

 

Postman

 

기존에 있던 API에 주소를 넣어주면 끝이다