Github Action 으로 AWS Lambda 자동 배포하기(3)
Github Action 으로 AWS Lambda 자동 배포하기(2)Github Action 으로 AWS Lambda function 자동 배포하기회사 업무로인해 CTO님이 Node로 작성하신 AWS Lambda 함수를 수정하는 역할을 맡게 되었다.(난 java spring이긴한
xddsr123.tistory.com
Layer는 추가 코드 또는 데이터를 포함하는 .zip 파일 아카이브입니다. 계층에는 일반적으로 라이브러리 종속 항목, 사용자 지정 런타
임 또는 구성 파일이 포함된다.
Lambda를 사용하다보면 외부 라이브러리를 import하거나,
여러 Lambda에서 import한 라이브러리들이 동일하게 사용중일 때 Layer를 사용한다면 코드 관리의 간편성 올라갑니다.
그렇다면 Layer는 어떻게 생성하고 사용하는 것인가에 대해 작성해보도록 하겠습니다.
먼저 Layer를 사용할 AWS Lambda Fucntion의 Runtime이 Layer와 호환가능한지 확인하여 줍니다.
2024-05-07을 기준으로 위 사진에 목록이 Layer에서 호환가능한 Runtime 목록으로 시간이 지남에 따라 변경될 수 있는점 확인 바랍니다.
AWS CLI을 이용하여 찾을 수 있으며 명령어는 다음과 같습니다.
aws lambda list-layers --compatible-runtime python3.12
aws lambda list-layers --compatible-runtime nodejs20.x
만약 호환이 가능하다면 Layer를 생성하기 위해 업로드할 파일이 필요합니다.
AWS Lambda의 공식 문서 중 "계층 콘텐츠 패키징"를 보면 아래와 같은 표를 확인 할 수 있습니다.
Node.js를 예로 들어 node_modules를 압축하는 것이 아닌 nodejs 폴더 아래에 node_modules를 복사(이동) 후 nodejs폴더를 압축하여 업로드 하는 것입니다.
아키텍쳐 또한 라디오 버튼이 아니므로 아래 사진과 같이 동시 선택이 가능합니다.
압축한 라이브러리 파일을 업로드 후 Layer화면을 확인해 보면 함수와 같이 버전을 생성 가능한 것을 확인할 수 있습니다.
이후 Lambda 함수에서 Layer를 설정 시 버전을 선택하여 적용이 가능하며 여러 함수에서도 동시에 같은 버전 및 다른 버전의 Layer 선택이 가능합니다.
'AWS' 카테고리의 다른 글
AWS CLI 설정하기 (0) | 2023.03.19 |
---|---|
AWS CloudWatch 로컬 터미널에서 확인하기 (0) | 2023.03.19 |