Api 개발 19

github로 lambda CI/CD하기

https://seonggongstory.tistory.com/181 API 소스코드 lambda에 배포하기 1cpu 1ram을 할당받는 ec2와 다른 서버리스(serverless) 방식 : 호출양만큼 금액만 낼경우 서버관련된 부분은 aws가 알아서 처리해줌( 유동사용자 만큼 자동으로 트래픽을 늘려줌) 대표적 : lambda , API Gate seonggongstory.tistory.com 이때 받은 aws 권한 key를 입력해줌 AWS_ACCESS_KEY_ID: ${{secrets.AWS_ACCESS_KEY_ID}} AWS_SECRET_ACCESS_KEY: ${{secrets.AWS_SECRET_ACCESS_KEY}} 이렇게 바꿔줌 name: serverless deploy on: push: bran..

Api 개발/flask 2023.01.12

serverless 계층(layer) 설정

정상적인 순서로 서버리스를 만들었을때 send했을때 이런 오류가 나온다면 로컬에서 lambda에 배포할때 우리 로컬에는 여러 라이브러리가 깔려있는 상태로 작업하고 lambda로 보낼때 필요한 라이브러리를 다 설치해주는데 이 라이브러리하고 소스코드 전부 다합처서 50mb가 넘으면 안된다는거 람다에는 소스코드만 넣어놓고 람다의 레이어를 만들어서 라이브러리(넘파이,판다스 등)를 미리 설치한뒤 람다실행될때 붙여준다. numpy pandas 라이브러리를 lambda 레이어로 만드는 방법 aws 클라우드안에 ec2 람다가 있다면 ec2에 접속해 람다와 같은 파이썬 환경을 구축 ssh:ec2 접속(리눅스) pypi접속 후 넘파이 판다스 설치해서 zip파일로 압축후 ftp: 로컬로 옮겨주고(파일질라) 로컬에서 람다로 ..

Api 개발/flask 2023.01.11

serverless 서버 서울로 바꾸기

지금서버는 aws의 us-east-1리젼에 배포된것이다 따라서 리젼을 서울로 바꿔서 배포해본다 region을 새로 만들어서 입력해줌 그리고 deploy하게 되면 이런 오류가 나온다. 맨위에 org와 app을 삭제 해준다 그리고 다시 배포 배포시 credentials로 실패하면, 로컬에 한번만 credentials 셋팅 해주면 된다 https://www.serverless.com/framework/docs/providers/aws/guide/credentials/ Serverless Framework - AWS Credentials The Serverless Framework documentation for AWS Lambda, API Gateway, EventBridge, DynamoDB and much..

Api 개발/flask 2023.01.11

API 소스코드 lambda에 배포하기

1cpu 1ram을 할당받는 ec2와 다른 서버리스(serverless) 방식 : 호출양만큼 금액만 낼경우 서버관련된 부분은 aws가 알아서 처리해줌( 유동사용자 만큼 자동으로 트래픽을 늘려줌) 대표적 : lambda , API GateWay, cloud watch(print문이나 error 출력됨) 1.로컬의 소스코드를 lambda에 배포( 수작업) 2. github를 이용한 ci/cd 1.로컬의 소스코드를 lambda에 배포( 수작업) 웹브라우저로 작업한 사람이아닌 프로그램으로 작업해서 올릴사람 그외 필요한 권한은 더 추가 하면 권한 요약 사라지지 않게 주의하기 https://nodejs.org/en/ Node.js Node.js® is a JavaScript runtime built on Chrom..

Api 개발/flask 2023.01.10

영화추천 api 만들기 즐겨찾기 기능

좋아요 하고 즐겨찾기를 따로 만드면 둘다 가능 즐겨찾기 즐겨찾기 추가 api post /favorite/movie_id(숫자) header JWT Token(user id) movie id는? 즐겨찾기 삭제 api delete /favorite/movie_id(숫자) header jwt token class FavoriteResource(Resource) : @jwt_required() def post(self,movie_id) : pass @jwt_required() def delete(self,movie_id) : return 꼭 잊지말고 규칙임 self 옆에 movie_id app연결하고 워크벤치가서 연습 insert into favorite (user_id,movie_id) values (1002..

Api 개발/flask 2023.01.10

영화추천 모듈화 개발

같은경로안에 두가지 (실시간,주기적업데이트) 만들어놓고 때때로 클래스이름만 바꿔서 활용한다 class MovieRecommendRealTimeResource(Resource) : @jwt_required() def get(self) : user_id = get_jwt_identity() try : connection = get_connection() select m.title, r.user_id, r.rating from movie m left join rating r on r.movie_id = m.id; 쿼리문으로 이동 ㄱㄱ movie_correlations = pd.read_csv('data/movie_correlations.csv',index_col='title') 영화 추천 코드를 따로 csv로..

Api 개발/flask 2023.01.10

MySQL에서 admin 계정만들기

use mysql; create user '어드민유저이름'@'%' identified by '어드민 비번' ; 이유저를 @(네트워크에 접속하게 해주겠다) 비밀번호 치고 grant all on 데이터베이스이름.* to '어드민유저이름'@'%'; 데이터베이스이름에 어드민유저이름을 관리할 권한을 주겠다 그후 새로운 커넥션 만들기 1. hostname : 내가 사용하는 aws rms주소 에 입력 2.username : 내가 방금 만든 id 3.password : 아까 만든 비밀번호 입력후 ok Test Connection까지 누르면 끝

Api 개발/flask 2023.01.04

RestFul(Representational State Transfer) API

API - 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할수 있게 만든 인터페이스 - API를 통해 소스 및 DB에는 접근하지 못하게 하고 해당 프로그램을 활용할수 있도록 제공해주는것 RestFul(Representational State Transfer) API - 서버나 서비스에 존재하는 모든 자원(이미지, 동영상, DB자원)에 고유한 uri를 부여해 활용하는 것 = 자원을 정의하고 자원에 대한 주소를 지정하는 방법론을 의미 url: 경로를 의미 데이터를 얻거나 사용하기위해 접속해야하는 경로 method: 그 경로에서 행하는 행동 message 서버에서 DB에 작업을 하고 반드시 클라이언트에게 response을 해줘야 하는데. request는 클라이언트가 서..

Api 개발/flask 2023.01.03