본문 바로가기

AWS Lambda ƛ/Lambda

AWS Lambda에서 특정 문장을 출력하기

# AWS Lambda에서 특정 문장를 출력하는 함수를 생성해보자.

1. 일단 Lambda 서비스로 이동하고, 함수 생성을 클릭하여 함수를 생성합니다.

2. 함수 생성 시 옵션에 새로운 함수 생성과 블루프린트 사용 등 다양한 옵션이 있습니다.
- 새로 작성은 백지에서 새로운 함수를 작성하고 실행하는 개념으로 이해가 가능하고, 블루프린트 사용은 다른 누군가가 만들어 놓은 함수를 가져다가 사용할 수 있는 옵션이라고 볼 수 있습니다.
- 새로 작성을 선택하고 다음으로 넘어갑니다.

3. 함수명과 런타임 할 언어를 선택 후 함수 생성을 클릭하여 생성을 합니다.

4. 함수가 정상적으로 생성이 되면 아래와 같은 화면으로 출력이 됩니다. 테스트를 하면 코드를 실행 후 결괏값을 반환합니다.

람다 함수를 Lambda function code에서는 직접 소스코드를 작성할 수도 있고, 미리 코딩한 파일을 zip 파일 형태로 업로드하거나 S3를 통해서 가져올 수도 있습니다. 보통은 직접 로컬에서 작업을 하고. zip 파일로 압축하여 업로드 후 코드를 실행시키는 경우가 많습니다.

5. 람다 함수에서 가장 중요한 것은 Lambda function code의 작성입니다.
- 아래의 코드는 가장 기본적인 코드로 API Gateway를 통해서 람다가 호출됐을 때 특정 문자를 출력해주는 가장 기본적인 코드입니다.

exports.handler = function(event, context) {
    console.log('event: ', JSON.stringify(event));
    context.succeed('안녕하세요... 람다 함수를 테스트 중 입니다.')  
};

- 코드를 작성 후 혹은 변경한 후에는 Deploy 버튼을 클릭하여 최신 상태로 유지해야 한다.

6. 여기서 가장 중요한 건 handler, event, context이다. 이에 대해서 간략하게 알아보자.

handler
handler함수는 Lambda funtion이 시작되는 메인 함수라고 보면 됩니다.
이 함수에 앞으로 설명할 event, context가 넘어오고 이를 컨트롤 해야 합니다.

event
Node.js에서 request의 개념으로 이해하면 된다.
Lambda가 실행되면서 전달되는 파라미터값들을 event를 통해서 넘겨받게 됩니다.

예를 들어 API Gateway와 연동될경우 GET, POST, PUT, DELETE 의 동작에서 넘겨지는 query, body, params등의 값들을 event에서 가져올 수 있습니다.

context
event가 request개념이었다면 context는 response개념으로 이해하시면 좋습니다.
context에서 결과로 리턴하는 함수는 done(), succeed(), fail()이 있습니다.

context.succeed(Object result);
결과가 성공했을때 리턴해주는 함수입니다.
여기서 Object는 json형식의 구조이어야 합니다. 
물론 result값을 넘겨주지않고 succeed()나 succeed(null)로도 리턴할 수 있습니다.

context.fail(Error error);
결과가 실패했을때 리턴해주는 함수입니다.
Error또한 값을 넘겨주지않고 사용할 수도 있습니다.
여기서 발생한 에러는 CloudWatch에 로그로 남겨지게 됩니다.

context.done(Error error, Object result)
결과가 성공이든 실패든 어떠한경우에도 쓰일수 있는 함수입니다.
첫번째 파라미터인 error가 null이라면 성공으로, 그렇지않다면 실패로 판단합니다.
여기서 error가 발생한경우는 fail()처럼 CloudWatch에 로그로 남겨지게 됩니다.

7. 작성한 코드를 테스트

- 테스트 탭으로 이동하고 해당 테스트 값을 입력 후 테스트를 진행 합니다.

8. 테스트 결과 확인하기

- 여기까지 AWS 람다 함수를 활용하여 특정 값을 출력하는 방법에 대해서 알아보았습니다.

- 끝 -