우선 도커를 이용해서 Mysql 을 설치해주도록 하자.
이미지를 받은 후 run 해준다.
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password --name minjunKim-mysql -v /Users/minjunKim/datadir:/var/lib/mysql mysql:8.0.17 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
이후 mysql에 접속한뒤에 DB 를 만들어주자
방금 만든 testdb 에 table을 하나 만들어 주자.
create table test( id int unsigned auto_increment comment 'ID (PK)' primary key, name varchar(255) not null comment '이름', memo varchar(255) not null comment '메모')comment 'test' collate=utf8mb4_unicode_ci;
Nodejs 템플릿 설치
sls create -t aws-nodejs -p ./sample
를 쳐서 보일러 플레이트를 설치하도록 하자.
그러면 하위 폴더에 sample이 나타날 것이다.
먼저 npm init을 해준뒤에 진행하자.
이제 필요한 모듈을 설치해보자
Babel설정
npm install --save source-map-supportnpm install --save-dev @babel/core @babel/plugin-transform-modules-commonjs @babel/preset-env babel-jest babel-loader babel-plugin-source-map-support babel-plugin-transform-runtime babel-preset babel-preset-es2015
설치후에 sample 프로젝트 폴더에서 .babelrc 파일을 만들어준다.
{
"plugins": ["source-map-support"],
"presets": [
[ "@babel/preset-env",
{
"targets": {
"node": "10"
}
}
]
]
}
Jest 설정
npm install --save-dev jest
jest를 설치해 주자.
이후 src와 test 폴더를 루트 위치에 만들자.
test : 테스트 코드를 위한 파일
src : 실제 백앤드를 구성하는 코드 작성
이제 테스트 코드가 잘 동작 하는지 확인해 보자.
위와 같이 test 파일을 작성후
const arr = [1, 2]test('테스트', () => { expect(arr.length).toBe(2)})
소스를 넣어서 작동 유무를 확인 해보자
그런데 여기서 그냥 Jest 라고 치면 아래와 같은 오류가 발생한다.
jest: command not found
해결링크 : https://stackoverflow.com/questions/50138532/command-not-found-jest
./node_modules/.bin/jest 로 실행시 동작한다.
이것을 jest 만으로 실행을 하려면 추가적으로 Jest-cli을 설치해 줘야한다.
npm install jest-cli --save-dev
Package.json의 script 까지 손봐주고 나면 정상적으로 cli 로 jest사용이 가능하다!
그리고 테스트 코드 역시 제대로 작동한다!
serverless 플러그인 설치
webpack
npm install --save webpack
serverless-mysql
npm install --save serverless-mysql
serverless-aws-alias
Serverless Deploy시에 alias옵션으로 dev와 prod로 나뉘어서 반영할수 있도록 별칭을 람다에 만들어서 관리하게 해주는 핵심 라이브러리다.
npm install --save-dev serverless-aws-alias
serverless-domain-manager
Route53에서 등록된 도메인의 레코드 생성과 yml 설정안에 옵션으로 Cloud Front 를 자동으로 생성해준다.
npm install --save serverless-domain-manager
serverless-offline
람다에 배포하기전 먼저 로컬에서 서버를 띄워서 yml에 정의된대로 람다를 테스트 할 수 있도록 만들어주는 플러그인
npm install --save-dev serverless-offline
serverless-webpack
npm install --save-dev serverless-webpack webpack-node-externals
설치완료후 sample밑에 webpack.config.js 설정 파일을 만들어서 저장한다.
'IT,프로그래밍 > AWS' 카테고리의 다른 글
[Lambda + RDS] connect ETIMEDOUT ERROR 해결법 (0) | 2020.06.09 |
---|---|
[Lambda + AWS SDK S3] 람다로 S3 접근가능 url 가져오는법 (0) | 2020.05.26 |
[Azure + AWS] Azure Devops 파이프라인 에서 ECR로 push하기 (0) | 2020.04.20 |
[ AWS + Serverless.js ] 3.소스 코딩 1 (0) | 2020.04.13 |
[ AWS + Serverless.js ] 1. serverless 설치 및 AWS연결 (0) | 2020.04.06 |