구레나룻

Termux 를 이용해 Dex 에서 AWS Lambda 개발하기 본문

DEX 활용기

Termux 를 이용해 Dex 에서 AWS Lambda 개발하기

GURENAREUT 2018. 5. 1. 19:21

Termux 에서 python과 node 가 돌아 가니 AWS 에 뭔가를 개발 하는데도 충분합니다.

여기서는 termux 에 aws cli와 serverless framework 를 설치하고 간단한 Hello world api 를 aws 에 배포하는데 까지 정리하겠습니다.

이 글의 내용을 따라 하기 이전에 아래 링크를 통해 Termux 개발환경 설정 부터 해 주시기 바랍니다.

2018/04/29 - Termux 를 이용해 Dex 에서 개발하기 - 기본 설정

AWS CLI 설치

aws cli 는 python 으로 개발되어 termux 에 python 을 먼저 설치 한 다음 pip 명령으로 설치해 주어야 합니다.

$ pkg install python
$ pip install awscli --upgrade --user

그 다음 .bashrc 에 아래를 추가해 aws cli path를 잡아 줍니다.

export PATH=$PATH:~/.local/bin

이제 aws configure 를 설정하여 aws access key id 와 secret access key 를 설정 합니다.

$ aws configure
AWS Access Key ID [None]: KEY ID HERE
AWS Secret Access Key [None]: ACCESS KEY HERE
Default region name [None]: ap-northeast-2
Default output format [None]: json

Serverless framework 설치 및 hello world api 배포

먼저 nodejs 를 설치하고 npm 명령을 통해 serverless framework 를 설치 합니다.

$ pkg install nodejs
$ npm install -g serverless

그 다음 serverless 에서 제공하는 템플릿으로 hello-world 서비스를 생성 합니다.

$ mkdir hello-world
$ cd hello-world
$ sls create --template hello-world


QuickEdit 를 실행해 생성된 서비스 설정 파일(servlerless.yml) 과 소스 코드(handler.js) 를 열어 확인해 봅니다.


이제 AWS 에 배포를 해야 하는데 그대로 배포하면 배포후 API 호출 시 handler.js 를 읽을 수 없다며 500 Internal Server Error 가 발생합니다.

문제의 원인은 handler.js 파일 권한이 600 즉 소유자만 읽을 수 있도록 설정되어 있기 때문입니다.

따라서 chmod 명령으로 누구나 읽을 수 있도록 권한을 변경 한 다름 sls deply 명령으로 AWS 에 배포 합니다.

$ chmod 644 *
$ sls deploy


hello-world API가 정상적으로 배포 되었습니다.

웹브라우저를 띄워 배포 로그에 보여지는 endpoint 로 접속 해 봤을 때 아래와 같이 응답이 온다면 정상입니다.


마무리

Termux 에서 nodejs 와 python 을 쓸 수 있으니 못할게 없다는 생각이 드네요.

다만 nodejs 모듈중 node-gyp 로 네이티브 코드를 빌드하는 모듈의 경우 link 에러가 발생하면서 빌드에 실패하는 문제가 있습니다.

여러 시도를 해봐도 해결이 안되서 일단은 pure nodejs 모듈만 사용 할 수 있다는 점 알아 두시길 바랍니다.


Comments