전에 만들었던 레시피 프로젝트의 app.py, util.py, config.py, mysql_connection.py, .gitignore 파일과
resources 폴더를 복사하여 붙여넣는다.
그 후 레시피 프로젝트에서 사용했던 라이브러리를 requirements.txt에 입력한다.
mysql-connector-python
flask-restful
psycopg2-binary
passlib
email-validator
Flask-JWT-Extended
requests
이제 deploy 한다.
sls deploy
포스트맨으로 endpoint를 활용해서 API를 작동시키자.
# 잘 작동된다.
디버깅할때는 cloud watch에서 로그의 로그그룹으로 들어가서 /aws/lambda 로 시작하는 로그를 찾는다.
# Lambda의 기본 지역이 us-east-1인것에 유의하자.
로그를 클릭해서 확인한다.
# 혹은 람다의 함수에서 cloud watch로 접근할수있다.
만일 에러가 있으면 error를 찾아 디버깅 한 뒤 deploy한다.
sls deploy
디버깅
"Service Unavailable" 에러

포스트맨으로 확인해보니 6초가 살짝 넘는 시간이 걸렸던것을 확인할수있다.
# 람다 서버가 US지역으로 설정되어 있기 때문에 시간이 많이 걸린다는것을 가정한다.
시간이 오래 걸리는 앱을 적용시키려면 람다 함수의 구성의 일반구성에서 제한시간을 늘려준다.
# 원래는 6초로 설정되어있다.
편집을 눌러 제한시간을 1분으로 늘려준다.
또한 코드의 serverless.yml 파일로 가서 provider 밑에 timeout을 60초로 설정한다.
provider:
name: aws
runtime: python3.8
timeout: 60
functions:
api:
handler: wsgi_handler.handler
events:
- httpApi: '*'
deploy한 뒤 다시 포스트맨으로 send 하면 성공적으로 실행되는것을 확인할수있다.
# 처리하는 시간이 17초가 걸렸다.
'백엔드 > Lambda' 카테고리의 다른 글
[Lambda] serverless 한국서버로 적용하기 (0) | 2022.08.18 |
---|---|
[Lambda] Lambda의 Layer(레이어, 계층) (0) | 2022.06.29 |
[Lambda] serverless app을 github에 연동 (0) | 2022.06.29 |
[Lambda] AWS 배포를 위한 serverless 프레임워크, Lambda (0) | 2022.06.28 |
댓글