서버리스가 주는 템플릿으로 $ sls deploy 할 때 오류 -> 해결방법 2가지 V4, V3
오류 발생
: $ sls deploy로 서버 배포했는데 오류가 발생했다.
오류 이유
: 서버리스의 wsgi 관련해서 더 설치를 하라는 오류 문구인 것 같다.
해결 방법
: $ serverless plugin install -n serverless-wsgi 설치 <- 예전 버전
: $ npm install serverless-wsgi --save-dev <- 최신 버전
예전 버전은 오류가 발생했고 최신버전으로 하니 설치가 잘 되었다!
다시 오류 발생
: 설치를 하고 $ sls deploy를 했을 때, 또 다른 오류가 발생되었다.
두 번째 오류 이유
: 읽어야 하는 파일이 너무 많아서 오류가 발생된 것 같다. _ too many open files
두 번째 오류 해결 방법
: 상관 없는 파일들을 제외시켜 주는 코드를 yml 야믈 파일에 작성해 준다.
package:
individually: true
exclude:
- node_modules/** # node_modules 폴더와 그 하위 모든 파일 및 디렉토리 제외
- .git/** # .git 폴더와 그 하위 모든 파일 및 디렉토리 제외
- tests/** # tests 폴더와 그 하위 모든 파일 및 디렉토리 제외
include:
- src/** # src 폴더와 그 하위 모든 파일 및 디렉토리 포함
- handler.py # 루트 디렉토리의 handler.py 파일 포함
- config/** # config 폴더와 그 하위 모든 파일 및 디렉토리 포함
해결 완료
: $ sls deploy 마침내 서버가 배포되었다
추가 해결방법
문제 원인
: Serverless 버전 문제!!
: 내가 처음에 사용한 Serverless 버전은 아주 최근에 업데이트된 V 4.0.26 (2024-05-23) 이다.
문제 해결
: 내가 사용하는 버전이 너무 최근에 업데이트된 버전이라 버그가 생겨 다운 그레이드 해줬다.
: V 3.38.0 (2023-11-21) 사용
$ npm install -g serverless@3.38.0
: 그리고 한국리전을 사용하기 위해서 serverless.yml 파일의 맨 위에 부분을 이렇게 바꿔줬다.
: 처음부터 V3을 이용하면 frameworkVersion: '3' 쓰여있고, 다운그레이드했다면 꼭 적어주자!
service: aws-memo-server
frameworkVersion: '3'
custom:
wsgi:
app: app.app
provider:
name: aws
runtime: python3.10
region: ap-northeast-2
: 이렇게 했는데 wsgi 쓰여있는 오류가 뜬다면,
$ serverless plugin install -n serverless-wsgi 설치 해준다.
해결 완료
: 버전을 변경하니 배포가 잘 되는 것을 확인할 수 있었다.
: V 3을 이용하면,
$ serverless plugin install -n serverless-wsgi / $ npm install serverless-wsgi --save-dev
위에서 해결했던 방법 모두 안 해도 된다.
* 서버리스 버전 Github
https://github.com/serverless/serverless/releases
'AWS SERVER > AWS Lambda Serverless 배포' 카테고리의 다른 글
[Serverless] 서울 리전 사용(region: ap-northeast-2), AWS에서 람다와 로그 확인, API endpoint 주소 알기 (0) | 2024.05.24 |
---|---|
[Serverless] AWS에 배포하기 위한, Serverless framework 설치 (Node.js) (0) | 2024.05.23 |