fra3il

AWS Lambda 는 개뿔.. 하나도 모르겠다고!

Introduction

fra3il

fra3il


LATEST POSTS

앱 아이콘에 앱 버전, 빌드 번호 등의 정보를 표시하는 방법 05th February, 2016

Houston 을 이용한 Feedback service 맛보기 29th January, 2016

Node.js

AWS Lambda 는 개뿔.. 하나도 모르겠다고!

Posted on .

이 글은 AWS, Node.js, js 등을 모르는 상태에서 @justinchronicle 님의 AWS Lambda를 이용해서 GitHub과 Slack 연동하기 를 기반으로 시작된 삽질을 정리한 글이다.

1. Lambda > New function

1.1. Select blueprint

뭐가 뭔지 모르기 때문에 그냥 Skip 을 선택한다.

1.2. Select blueprint

1. Runtime 은 Node.js 4.3 으로 설정한다.
2. Lambda function code 에서는 Edit code inline 을 선택하고 아래의 코드를 작성한다.

3. 작성한 코드의 Handler 가 myHandler 이므로 Lambda function handler and role 의 Handler 를 index.myHandler 로 수정한다.

The module-name.export value in your function. For example, “index.handler” would call exports.handler in index.js.

4. Lambda function handler and role 의 Role 는 lambda_basic_execution 로 설정한다.

1.3. Review

Create function 선택

1.4. Test

화면 상단의 Test 또는 Save and test 를 선택하면 된다. (cmd + s, cmd + b 등의 단축키도 동작한다.)

첫 테스트 시 설정한 handler 의 event 값은 Actions – Configure test event 에서 수정할 수 있다.

2. 코드 작성 및 로컬 테스트

2.1. Sublime Text

Sublime Text 에서 Node.js 를 사용하기 위해서는 Package Control 을 이용하여 Nodejs 를 설치해야 한다.

만약 빌드 결과 화면에서 한글이 정상적으로 표시되지 않는다면 다음과 같이 빌드 설정을 변경해야 한다.
1. Package Control 를 이용하여 Package​Resource​Viewer 를 설치한다.
2. Command Palette (cmd + shift + p) 에서 PackageResourceViewer: Open Resource – Nodejs – Nodejs.sublime-build 를 선택한다.
3. encoding 을 utf8 로 변경한다.

2.2. 빌드

위에서 작성했던 기본 코드는 다음과 같은 형태로 로컬에서 빌드할 수 있다. (cmd + b)

2.3. npm

로컬에 npm 을 설치하고 이를 zip 으로 압축해서 업로드하는 형태로 npm 을 사용할 수 있다. (Creating a Deployment Package (Node.js))

매번 선택해서 압축하기 귀찮으니 자동 배포까지는 아니더라도 다음과 같이 스크립트를 이용하는 방법도 고려해볼 만하다.

3. AWS API Gateway

3.1. 생성
  • Create Resource
  • Create Method
    • DELETE, GET, HEAD, OPTIONS, PATCH, POST, PUT
3.2. 배포
  • API – Resources – Actions – Deploy API
  • Invoke URL
    • 배포 이후, API – Stage 에서 확인할 수 있다.
3.3. 삭제
  • API – Resources – Actions – Delete API

결론은 나 같이 아무것도 모르는 사람이 쓰기에는 Lambda 만한 것이 없는 것 같다. 라지만.. 사용 요금에 대해서 전혀 감이 오지 않는다는 것은 큰 문제인 것 같다. (Lambda 는 API Gateway, CloudWatch, S3 와 맞물려서 돌아가니 요금을 신경쓰지 않을 수가 있나..)

덧.
삽질 과정에서 숟가락을 포크레인으로 바꿔준 @haruair 님에게 감사!

관련 링크

fra3il

fra3il

Navigation