지난 주에는 간단하게 Lambda가 뭔지에 대해서 알아봤습니다. (참고 포스팅 : http://sarc.io/index.php/aws/566-aws-lambda)

오늘은 람다를 이용해서 Python 코드를 실행해 보고 우리의 친구 Hello World 를 출력해 보겠습니다.

 

AWS Lambda 서비스를 선택하고 Get Started Now 버튼을 클릭해서 바로 시작해 보아요!!

 

저는 사실 이전에 테스트 용으로 만들어 놓은 람다 함수 두개가 있었는데요, 친절하게 몇 개의 함수를 가지고 있고 몇 바이트를 사용하고 있는지 알려주네요.

암튼 여기서 Create a Lambda function 버튼을 클릭해 보겠습니다.

 

이제 blueprint 라는 걸 선택해야 하는데요, blueprint는 람다에서 프로세싱을 최소화 하기 위해 제공하는 예제 코드입니다.

저는 hello-world-python 이라는 기본 blueprint 를 선택하기 위해서 런타임에 Python 2.7을 선택하고 필터에 hello-world 를 입력해 줬어요.

 

이전 화면에서 넘어가면 트리거 설정 페이지가 나오는데요, 이 페이지에서 트리거를 설정해 두면 람다가 자동으로 함수를 트리거 한다고 합니다. 

저는 간단한 함수만 만들 관계로 트리거는 필요 없기 때문에 그냥 Next 를 눌러줬어요.

 

다음은 Configure 페이지인데요, 기본적인 정보는 이미 입력되어 있어서 이름만 helloWorld 라고 입력해 줬습니다.

다른 설정들도 세팅해 주기 위해서 스크롤 다운을 해주세요.

 

맨 위에 있는 Handler 는 filename.handler-function 형식의 값입니다. 

기본으로 입력된 이름인 lambda_function.lambda_handler 의 경우, lambda_function.py 라는 파일 안에 lambda_handler 라는 함수가 있는 형식입니다.

저는 Handler 는 기본 입력된 값으로 놔두고 Role 은 Create new role from template(s) 를 선택해서 Role name 에 basic 이라고 입력해 줬어요.

Policy templates 는 필수값이 아니라서 그냥 놔두고 나머지 값들은 기본 값으로 설정한 뒤 Next 를 눌러볼게요. 

 

리뷰 페이지가 나오면서 지금까지 입력한 설정값을 보여주네요. 여기서 Create function 을 클릭해 줍니다.

 

함수가 잘 만들어졌다는 메시지가 뜨면서 무언가 코드가 뜨는데요, 아까 선택한 hello-world-python이라는 blueprint 에서 제공하는 예제 코드입니다.

 

여기서 Actions > Configure test event 를 클릭해 주면 이 event 라는 JSON 형태의 데이터에 테스트 값이 들어있는지 보여줍니다.

 

Hello World 라는 기본 이벤트 템플릿에는 key, value 3쌍이 들어있는 테스트 데이타가 제공되네요.

그럼 이 데이타를 가지고 샘플 코드를 한번 실행해 보겠습니다.

event['key1'] 에 들어있는 값을 리턴하는 코드였으니 value1을 리턴해주겠죠? 

 

역시 실행 결과에 value1 이 리턴되었습니다. Log output 에는 샘플 코드에서 출력한 각 key 와 value 의 값이 출력되었습니다.

이걸 보니 Hello World 를 리턴하기 위해서 어떻게 해야하는지 슬슬 감이 오기 시작하네요.

 

다른 방법으로도 Hello World 를 출력할 수는 있겠지만 저는 이벤트 데이타에 "Hello World!" 를 값으로 가지고 있는 "myKey" 를 추가해 줬어요.

이제 lambda_handler라는 함수에 Hello World 를 리턴할 수 있도록 소스를 살짝 수정해 봤습니다.

로그에 myKey 의 값을 출력할 수 있도록 한 줄을 추가해주고 return 값을 event['myKey'] 로 수정한 뒤 다시 코드를 실행해 보시면 !

 

 

이벤트 데이타에 저장해 둔 "Hello World!" 가 출력되었고, 로그 아웃풋에도 한 줄이 추가된 것을 보실 수 있습니다. 

 

이런 방식으로 이벤트 데이터와 소스 코드가 간단하게 연계되어 쉽고 빠르게 소스를 테스트 해 볼 수 있는 것이 람다의 장점입니다. 

소스는 창에서 직접 입력하지 않고 zip 파일로도 업로드가 가능하니 잘 응용하시면 테스트 시간을 꽤나 줄일 수 있을 것 같아요.

여기까지 아주 기본적인 AWS Lambda 사용기였습니다! 질문이 있으시면 아래 댓글로 남겨주세요. 

 

출처 : http://docs.aws.amazon.com/lambda/latest/dg/get-started-create-function.html