분류 전체보기
AWS Lambda - serverless 배포 region 변경하기
serverless 프레임워크로 배포를 하면 기본값으로 us-east-1 region에서 배포를 한다. region을 ap-northeast-2(서울)로 변경해보자. 1. serverless.yml 파일을 연다. serverless.yml은 serverless 환경설정 파일이라고 생각하면 된다. 2. provider 밑에 region 값을 추가한다. 이대로 배포하면 에러가 발생한다. 3. org와 app을 삭제한다. org 정보를 삭제 했기 때문에 이대로 배포하면 또 에러가 발생한다. 4. 로컬에 credential 셋팅을 해준다. 터미널창에 아래 명령을 본인의 key값, secret key 값을 넣고 실행한다. \ 는 제외하고 한줄로 실행한다. serverless config credentials \ ..
AWS Lambda - App에 필요한 패키지 설치하기. requirements.txt 사용
개발한 API 서버의 py 파일만 가져와서 AWS Lambda에서 배포했더니 에러가 발생한다. Lambda는 에러메시지를 보여주는 터미널 창이 없으므로 CloudWatch에 들어가서 로그를 확인해본다. 내가 사용했던 라이브러리 모듈이 없어서 에러가 발생했다. 마찬가지로 Lambda는 터미널 창이 없으므로 pip install 같은 명령을 할 수가 없다. 해결방법은 requirements.txt 파일에 필요한 패키지들을 저장하면 serverless 배포할 때 알아서 설치한다. requirements.txt 참고: https://donghyeok90.tistory.com/143 특정 프로젝트에 있는 파이썬 패키지만 requirements.txt 로 만들기 - pipreqs 개발환경이 변경 되었을때 일일이 패..
AWS Lambda - Serverless 프레임워크로 테스트 배포하기
1. 서버리스 홈페이지 회원가입 https://www.serverless.com/ Serverless: Develop & Monitor Apps On AWS Lambda Easily develop and monitor auto-scaling applications on AWS Lambda, API Gateway, DynamoDB, etc., with the Serverless Framework and Serverless Monitoring Dashboard. www.serverless.com 2. AWS Credentials를 serverless에 적용 add Next IAM에서 받았던 credentials를 보고 key를 입력해준다. 참고: https://donghyeok90.tistory.com/19..
AWS - Serverless 프레임워크 설치하기
1. Serverless(서버리스)란? 개발자가 서버를 관리할 필요 없이 애플리케이션을 빌드하고 실행할 수 있도록 하는 클라우드 네이티브 개발 모델 2. Serverless Framework AWS, Azure, GCP 등의 서버리스 서비스를 쉽게 사용할 수 있도록 도와주는 오픈소스 프레임 워크 3. Serverless 프레임워크 사용을 위한 Node.js 설치 Node.js 다운로드 링크 https://nodejs.org/en/download/ Download | Node.js Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org LTS 버전으로 다운로드 쭉 next를 눌러서 기본값으로 설치 4. Serve..
AWS - IAM 사용자 권한 설정하기
1. IAM (Identity and Access Management) AWS 리소스에 대한 액세스를 안전하게 제어할 수 있는 웹서비스 AWS 계정을 처음 생성 할 때는 해당 계정의 모든 AWS 서비스 및 리소스에 대한 완전한 액세스 권한을 지님 완전한 액세스 권한을 통합 인증(SSO) 자격 증명이라고 하며, 루트 사용자라고도 함 IAM을 사용하여 리소스를 사용하도록 인증(로그인) 및 권한 부여 된 대상을 제어 일상적인 작업, 관리 작업의 경우에도 루트 사용자는 가능한한 사용하지 않는 것이 좋음 2. IAM 사용자 권한 부여하기 현재 나의 목적은 Lambda를 사용해서, Flask로 개발한 REST API서버를 Serverless(서버리스) 배포 하는 것이다. 따라서 그에 맞게 권한 설정하는 법을 알아본..
API서버 - @jwt_required(optional=True)를 이용한 분기 처리
@jwt_required() 의 기본 동작은 헤더에 token이 없으면 접근이 불가한데, 파라미터 optional에 True를 주면 token이 없어도 접근할 수 있다. 이를 이용해, 분기 처리를 해서 비회원과 로그인 한 회원의 동작을 다르게 하는 API를 만들 수 있다. 영화 리스트를 가져오는 API 코드 회원인 경우 즐겨찾기 정보도 추가해서 가져온다. from flask import request from flask_restful import Resource from mysql.connector import Error from flask_jwt_extended import jwt_required, get_jwt_identity # mysql.connector 를 사용해 만든 MySQL 접속 함수 fr..
Pandas - 날짜 단위로 그룹화하기 resample()
시카고의 범죄 발생 시각을 기록한 데이터가 있다. 이 데이터로 prophet 라이브러리를 사용해 미래에 범죄가 얼마나 발생할지 예측하려 한다. prophet 참고: https://donghyeok90.tistory.com/190 Prophet 라이브러리를 사용한 Time Series(시계열) 데이터 예측 1. Prophet 라이브러리 페이스북이 개발한 일변량(하나의 변수) 시계열 예측을 위한 오픈소스 라이브러리 경향성(Trends), 계절성(seosonality), 휴일(holidays)을 반영하는 모델이다. 계절적 효과가 강하고 donghyeok90.tistory.com groupby 함수를 이용해서는 날짜데이터를 년단위, 월단위, 일단위 등으로 그룹화 할 수 없다. 날짜 단위로 그룹화하기 위해 pan..
판다스 read_csv 에러 - ParserError: Error tokenizing data.
pd.read_csv() 를 하는 과정에서 에러가 발생했다. ParserError: Error tokenizing data. C error: Expected 23 fields in line 533719, saw 24 이 에러는 다른 라인들보다 구분자(seperator)의 갯수가 많은 라인이 있을 때 발생한다. 직접 csv 파일을 수정해도 되지만, 위처럼 데이터가 많은 경우는 찾아서 수정하는 것도 일이기 때문에 read_csv의 파라미터로 에러가 발생한 라인만 제거하고 가져올 수 있다. 파라미터에 error_bad_lines= False 를 추가해준다. chicago_df_1 = pd.read_csv('Chicago_Crimes_2005_to_2007.csv', error_bad_lines=False, i..