목록AWS/Lambda (9)
군침이 싹 도는 코딩
1. VS code 에서 Dockerfile을 만든다. FROM public.ecr.aws/lambda/python:3.9 COPY . ${LAMBDA_TASK_ROOT} COPY requirements.txt . RUN yum -y install gcc RUN pip3 install -r requirements.txt --target "${LAMBDA_TASK_ROOT}" CMD ["app.handler"] 2. VS code 에서 .dockerignore 파일을 만든다. __pycache__/ .git/ .serverless/ .gitignore .dockerignore serverless.yml 두 파일을 만들때 대소문자 구별해서 똑같이 만든다 3. VS code 에서 serverless.yml로 ..

# 자동배포중에 오류가 난 상황 - 해당 오류는 surprise 라이브러리가 AWS lambda의 쓰레드 호환성 때문에 발생한 에러였다 이것을 해결하기위해 먼저 해당 라이브러리를 도커 이미지로 만든 뒤 그것을 AWS ECR을 통해 Lambda로 배포하게 하였다 그 뒤 serverless key를 발급 받아 GitHub Actions로 CI/CD 구축을 해 자동배포하게 만들었다 # 배포가 완료된 모습 도커 이미지로 배포하는 법은 해당글을 참고 도커 이미지로 배포하는 법 1. VS code 에서 Dockerfile을 만든다. FROM public.ecr.aws/lambda/python:3.9 COPY . ${LAMBDA_TASK_ROOT} COPY requirements.txt . RUN yum -y ins..

# 서버를 처음 만들고 따로 수정하지않는다면 dev라고 표시된다 개발용 테스트용이라고 지칭한다 # 서버리스 yml 파일에서 스테이지 prod를 적어 배포하면 prod로 바뀐다 일반적으로 상용화 서비스용이라고 지칭한다 # 스테이지에 프로드를 적고 재배포하면 같은 이름에 prod라는 서버가 생긴다

# 람다로 서버를 돌려서 포스트맨으로 테스트를 하다보면 지연시간이 6초가 넘어가면 상태코드 500 에러가 뜬다 이것을 해결하기 위해서는 AWS 사이트로가서 지연시간을 수정해주어야 한다 # API 게이트웨이를 눌러준다 # 일반구성을 눌러보면 제한시간이 6초인것을 확인할 수 있다 디폴트 시간이 6초기때문에 서버를 만든 후 편집해주지않으면 6초로 설정되어 6초가 넘어가는 작업은 타임아웃이되어 500 에러가 뜬다 이것은 편집을 눌러 간단하게 바꿔줄수 있다 # 또는 비쥬얼 스튜디오코드에서 serverless.yml파일에서 프로바이더에 타임아웃을 적어주고 재배포해주면 된다 # 25초로 잘 바뀐것을 확인할 수 있다

# 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..