목록전체 글 (303)
군침이 싹 도는 코딩
from flask import Flask from flask_jwt_extended import JWTManager from flask_restful import Api from config import Config app = Flask(__name__) # 환경변수 세팅 app.config.from_object(Config) # JWT 매니저 초기화 jwt = JWTManager(app) api = Api(app) # 경로와 리소스(API코드)를 연결한다 if __name__ == '__main__' : app.run()
# 사진과 글을 동시에 DB에 저장하는 API를 만들어보자 조건은 사진과 글 모두를 꼭 올려야하며 사진이 아닌 파일은 올릴수없게 만든다 메소드는 데이터를 바디에 보내야하므로 POST를 써주고 사진과 글은 form-data로 받아오게 설계한다 class PostingResource(Resource) : def post(self) : # 사진과 내용은 필수항목이다 if 'photo' not in request.files or 'content' not in request.form : return {'error':'데이터를 정확히 보내세요'}, 400 # 클라이언트로부터 데이터 받아온다 # form-data # photo : file # content : text file = request.files['phot..
# 객체 탐지 API는 GET 메소드로 만들고 쿼리스트링으로 S3에 저장되어있는 이미지 파일 이름을 받아온다 class ObjectDetectionResource(Resource) : # S3에 저장되어있는 이미지를 객체 탐지하는 API def get(self): # 클라이언트로부터 파일명을 받아온다 filename= request.args.get('filename') # 위의 파일은 이미 S3에 있는 상황 # 따라서 aws의 rekognition 인공지능 서비스를 이용해서 object detection을 한다 # 리코그니션 서비스를 이용할 수 있는지 IAM 의 유저권한을 확인하고 설정해준다 client = boto3.client('rekognition', 'ap-northeast-2', aws_acce..
# 이미지를 담을 버킷을 S3에서 하나 만든다 # API 를 설계해준다 이미지를 보내는거기때문에 메소드는 POST로하고 url을 정해준다 그리고 바디부분에 form-data로 체크하고 키값에 photo라고 쓴뒤 옆을보면 text와 file이 있는데 file을 눌러주고 벨류에 보낼 사진을 넣는다 from flask import Flask, request from flask_restful import Resource from mysql.connector import Error from mysql_connection import get_connection from flask_jwt_extended import jwt_required from flask_jwt_extended import get_jwt_iden..
# AWS 람다에 계층으로 들어가 계층 생성을 누른다 # 이름과 설명을 적고 Amazon S3를 이용하기 위해 우선 S3로 간다 # S3에서 버킷을 만들어준다 # 버킷을 만들때 주의할점은 버킷의 이름을 글로벌로 모든 나라에서 겹치면 안된다 따라서 사용자이름을 붙여서 유니크하게 만들어준다 # 만든 버킷에 들어가 업로드를 누르고 zip 파일을 업로드한다 # 업로드한 zip 파일의 객체 url을 복사한다 # Amazon S3 파일 업로드 체크하고 링크를 붙여넣기 후 x86_64 런타임은 파이썬 3.9 버전으로 한다 # 계층이 잘 생성되었다 # 람다로 다시가서 계층을 추가 할곳으로 가서 계층에 add a layer를 눌러서 추가한다 # 사용자 지정 계층으로 체크하고 추가해준다 # 계층이 추가되었다 # 포스트맨으..
# AWS lambda serverless 를 만들어서 api를 실행시키면 이러한 오류가 뜰때가 있다 이 오류는 람다의 할당량을 초과했을때 나는 에러이다 이것을 해결하기 위해서는 레이어를 따로 만들어줘서 그 안에 용량이 큰 라이브러리를 설치해주어야 한다 # 레이어는 여기서 확인할 수 있다 $conda create -n lambda39 python=3.9 # 바로 람다에 깔수 없기때문에 SSH를 이용해 EC2 서버에 접속해준다 그 뒤 파이썬이 없다면 아나콘다부터 설치하고 가상환경을 파이썬 3.9버전으로 세팅한다 $conda activate lambda39 # 가상환경 변경 $mkdir python # python 폴더 만들기 $cd python # python 디렉토리로 이동 # 그 다음 가상 환경을 이동..
# 먼저 서울 리전의 이름을 확인한다 region: ap-northeast-2 # serverless.yml 파일로가서 provider에 확인한 이름을 region: 해서 써준다 # 그 후 배포하면 대시보드에서 지원하지 않는다고 에러가 난다 # 다시 serverless.yml 파일에 맨 위 두줄을 삭제하고 service만 남겨놓는다 # 그 후 배포를 하면 다른 에러가 발생한다 credentials 에러는 serverless.yml 위에 두줄을 삭제해서 키값과 시크릿 키값을 불러올 수 없기때문에 발생한다 때문에 자신의 키값과 시크릿값을 로컬에 세팅해줘야한다 # 서버리스 컨픽 코드 serverless config credentials --provider aws --key 자신의 키 --secret 자신의 시..
AWS Lambda를 이용한 Serverless 배포하기 (1) IAM 사용자를 생성한다 IAM 사용자 추가 # AWS IAM에 가서 사용자를 누른 뒤 사용자 추가를 누른다 # 사용자 이름을 입력하고 엑세스 키에 체크를 한 뒤 다음을 누른다 # 필요한 권한들을 추가한 뒤 mugoori.tistory.com # AWS Lambda를 이용한 Serverless 배포하기 (1) 에 이어서 계속한다 배포용 깃허브 레파지토리를 만든다 # 깃허브에 만든 배포용 레파지토리를 깃허브 데스크탑을 통해 클론 한 뒤에 서버리스 적용된 폴더에 있는것을 모두 깃허브 배포용 레파지토리에 넣는다 # 배포용 레파지토리를 비쥬얼 스튜디오코드로 열고 만들어뒀던 api를 모두 복사 붙여넣기 해준다 # .gitignore에 node_mod..