본문 바로가기

AWS Lambda ƛ/Lambda

Lambda Handler란?

# Lambda Handler란?

간단 정리

Lambda 함수 호출시 Lambda는 핸들러 메서드를 실행한다.

그리고 당연한 이야기지만 하나의 람다에는 하나의 핸들러만 존재한다. (main 메소드?, 진입점 이라고 이해라면 되려나?...)

 

아래의 # 예제 코드 1에서 보면 3개의 파라미터(인수가 존재한다.)

event:
첫 번째 인수는 호출자로부터의 정보가 포함된 event 객체. 
이 정보는 함수를 호출할 때 호출자가 JSON 형식 문자열로 전달하고, 
런타임은 이 정보를 객체로 변환한다. 

context:
두 번째 인수는 컨텍스트 객체이며, 호출, 함수 및 실행 환경에 대한 정보가 포함되어 있다.

callback:
세 번째 인수는 callback이다. 비동기 응답을 전송하기 위해 필요하며, 
위 코드와 같이 async 키워드를 이용해 promise 객체를 대신하서 사용할 수 있다.

- 람다 핸들러란 무엇이냐면,

Lambda 함수의 핸들러는 이벤트를 처리하는 함수 코드의 메서드입니다. 
함수가 호출되면 Lambda는 핸들러 메서드를 실행합니다. 
핸들러가 존재하거나 응답을 반환할 때, 또 다른 이벤트를 처리하기 위해 사용할 수 있게 됩니다.

# 람다 함수가 실행되는 구조

- 아래 코드를 버면 exports.handler라는 이름의 디폴트 함수가 있는데, 람다를 실행하면 이 exports.handler 메소드가 호출이 되어 코드가 실행되는 구조이다.

# 예제 코드 1
exports.handler = async (event, context) => {
    // TODO implement
    const response = {
        statusCode: 200,
        body: JSON.stringify('Hello from Lambda!'),
    };
    return response;
};

# 예제 코드 2
exports.handler = async (event) => {
    // TODO implement
    const response = {
        statusCode: 200,
        body: JSON.stringify('Hello from Lambda!'),
    };
    return response;
};

# 람다 디버깅

AWS 서비스인 CloudWatch에서 lambda 함수에 대한 로그를 확인하면 된다.

람다 서비스 상단 메뉴바에서 모니터링 탭에 들어가 CloudWatch 콘솔 메뉴로 이동한다. 람다 로그는 CloudWatch에서 로그 스트림 이라는 곳에 쌓여있다.

# 예제 코드 (파이썬)

https://may9noy.tistory.com/469

 

S3 버킷의 폴더를 삭제 후 새폴더를 생성 및 파일을 업로드 하는 방법

# 작업 구성도 # 람다 코드 #--------------------------------------------------------------------------------- # 특정 S3 버킷의 폴더를 삭제 후 특정 폴더를 생성과 동시에 파일을 업로드 하는 방법 # 해당 버킷의 Prefi

may9noy.tistory.com

# 추가 사례 링크

- AWS Lambda로 S3에 파일 저장하기

https://jinyes-tistory.tistory.com/206

 

[aws] aws lambda로 s3에 파일 저장하기

참조 - www.youtube.com/watch?v=vXiZO1c5Sk0 단계 요약 1. aws lambda 함수 생성 2. IAM 롤 부여 3. S3 버킷 생성 4. lambda 환경에서 스크립트 작성 5. 테스트 및 배포 참조한 영상에서는 IAM을 먼저 생성하고 람다 함

jinyes-tistory.tistory.com

- 끝 -