운동하는 공대생
AWS Gate Way(Lambda) 본문
1.Intro
이번에는 AWS에서 요청값을 라우팅받는 Lambda에 대하여 설명을 하겠다.
Lambda에서는 요청값을 전달 받아서 값을 처리하거나 외부 API를 호출하는등 여러가지 작업이 가능하다.
프로젝트 작업을 하면서 이번 Lambda에서는 Python 언어를 사용하였다.
2.AWS Lambda
AWS Lambda는 API 서비스와 연결하여 API를 호출하는 요청과 요청값을 라우팅 받는다.
이번에 주로 사용했던 Lambda에서의 기능은 endpoint, layer, 권한, 외부 라이브러리 사용 등을 주로 사용하였다.
2.1 Lambda Layer
런타임을 파이썬으로 설정하고 AWS Lambda 를 이용하다 파이썬에서 기본으로 제공하는 라이브러리 함수를 사용하지 못하는 경우가 발생하였다. 그래서 이를
해결하기 위해서 Lambda서비스에서 제공하는 계층(layer)을 이용하여 문제를 해결하였다.
Layer?
Lambda 계층은 추가 코드 또는 기타 콘텐츠를 포함할 수 있는 .zip 파일 아카이브입니다. 계층에는 라이브러리, 사용자 정의 런타임, 데이터 또는 구성 파일이 포함될 수 있습니다.
계층은 Lambda 함수와 함께 사용할 수 있는 라이브러리 및 기타 종속성을 패키징하는 편리한 방법을 제공합니다. 계층을 사용하면 업로드된 배포 아카이브의 크기가 줄어들고 코드를 더 빠르게 배포할 수 있습니다. 계층은 또한 코드 공유 및 책임 분리를 촉진하므로 비즈니스 로직 작성시 더 빠르게 반복할 수 있습니다.
함수당 최대 5개의 계층을 포함할 수 있습니다. 계층은 표준 Lambda 배포 크기 할당량에 포함됩니다. 함수에 계층을 포함하면 실행 환경의 /opt 디렉터리로 콘텐츠가 추출됩니다.
기본적으로 생성하는 계층은 AWS 계정에 비공개입니다. 계층을 다른 계정과 공유하거나 계층을 공개하도록 선택할 수 있습니다. 함수가 다른 계정에서 발행한 계층을 사용하는 경우 함수가 계층 버전을 삭제한 후 또는 계층에 대한 액세스 권한이 취소된 후에도 해당 계층 버전을 계속 사용할 수 있습니다. 그러나 삭제된 계층 버전을 사용하여 새 함수를 작성하거나 함수를 업데이트할 수는 없습니다.
2.2 Endpoint
2.3 권한
AWS Lambda에서 권한 설정은 AWS에서 제공하는 다른 서비스를 사용하기 위해서 반드시 필요한 작업니다.
예를 들어 Lambda 함수에서 라우팅받은 데이터를 AWS 클라우드 저장소인 S3에 값을 저장한다. 라는 작업을 한다면 이 Lambda함수에
서는 S3에 접근하는 권한이 반드시 필요로 한다.
권한을 추가하는 방식은 밑의 사진들의 순서를 따른다.

a. 설정을 반드시 해야 한다. 이번 예시에서는 AWS에서 제공하는 클라우드 서비스 S3의 접근 권한을 추가해
보았다. 설정 방식은 Lambda 함수에서 ‘구성’ 메뉴의 ‘권한’ 메뉴를 들어가면 실행 역할에서 권한의 이름 있는
링크에 들어가면 권한 설정이 가능하다.

b. AWS Lambda에서는 다른 AWS에서 제공하는 서비스를 이용하기 위해서 서비스에 접근하는 권한
설정을 반드시 해야한다. 이번 예시에서는 AWS에서 제공하는 클라우드 서비스 S3의 접근 권한을 추가해
보았다.

c. 권한 추가 스크롤에 ‘정책 연결’ 에서 권한을 추가하는게 가능하다.

d. 정책 연결을 클릭했다면 이제 추가하려는 권한을 찾아야한다. 이번 예시에서는 S3 버킷에 접근이
가능하게 해주는 권한을 추가를 해야 하니 S3를 검색 그리고 S3에 모든 접근이 가능한 FullAccess 권한을
선택하고 정책을 연결해준다.
3.Lambda 생성

a. AWS에서 제공하는 “API Lambda” 서비스를 이용하기 위해서 먼저 Lambda 함수를 생성한다.

b. Lambda 함수를 생성을 했다면 먼저 함수의 이름과 함수 안에서 런타임(코드 작성 언어)를 설정을 해야 한다.
이후 함수 코드를 작동 시키는 명령 세트 아키텍처를 선택하고 “함수 생성” 버튼을 눌러 함수를 생성한다.

c. API와 Lambda 함수와 연결을 시키면 사진처럼 함수가 생성이 완료된다.
'AWS > Lambda' 카테고리의 다른 글
Docker Container Image 로 AWS Lambda 함수 구현 (0) | 2022.10.31 |
---|---|
AWS Lambda 에서 외부 API 호출하기(OCR) (0) | 2022.10.11 |
AWS Lambda(layer-계층 생성하기) (0) | 2022.10.07 |
AWS Lambda(layer) (0) | 2022.10.06 |