Skip to content

Latest commit

 

History

History
157 lines (109 loc) · 3.66 KB

README.md

File metadata and controls

157 lines (109 loc) · 3.66 KB

Serverless Stack

Console

사용자 추가

  1. 사용자추가 바로가기

    1. 사용자 이름 기입 ✔

    2. 프로그래밍 방식 엑세스 체크 ✔

    다음: 권한 ✔

  2. 기존 정책 직접 연결 선택 ✔

    1. AdministratorAccess 검색 후 선택 ✔

    다음: 검토 ✔

  3. 사용자 만들기 선택 ✔

  4. [.csv 다운로드] ✔

    Access key ID, Secret access key

AWS CLI 설치

  1. Homebrew를 통해 설치

    $ brew install awscli
  2. AWS CLI에 엑세스키 추가

    $ aws configure

    1. Access Key ID :

    2. AWS Secret Access Key :

    Default region name and Default output format : (기본값으로 Skip ✔)

DynamoDB 테이블 생성

  1. 테이블 생성 바로가기

    1. 테이블 이름 (memos)

    2. 기본키 (userId)

    정렬키 추가 선택 ✔

    3. 정렬키 (memoId)

    생성 ✔


Serverless Framework 설정

AWS Lambda와 Amazon API Gateway를 사용하여 서버사이드 구성

  1. NPM을 통해 설치
$ npm install -g serverless
  1. 프로젝트 이동 / 패키지 설치
$ cd serverside

$ npm install
  1. region 변경이 필요하면 변경

serverside/src/providers/common/dynamodb.js

AWS.config.update({ 
    region: 'ap-northeast-2'
});

serverless.yml

region:ap-northeast-2

API Endpoints 테스트

메모 생성 API 호출 후 mocks/*.json의 pathParameters.id(memoId) 변경

  • Response
{
    "statusCode": 200,
    "body": {
        "userId": "MEMO-USER-1",
        "memoId": "273a78b0-7953-11e8-ab77-dfbc85a4dcd9",
        "title": "Memo Title",
        "content": "Memo content",
        "createdAt": 1530010740723
    }
}
Name Command
메모 생성 $ serverless invoke local --function create --path mocks/mock-create.json
메모 읽기 $ serverless invoke local --function get --path mocks/mock-get.json
모든 메모 읽기 $ serverless invoke local --function gets --path mocks/mock-gets.json
메모 수정 $ serverless invoke local --function update --path mocks/mock-update.json
메모 삭제 $ serverless invoke local --function delete --path mocks/mock-delete.json

서버리스 API 배포

$ serverless deploy
Service Information
service: serverside
stage: prod
region: ap-northeast-2
stack: serverside-prod
api keys:
  None
endpoints:
  POST - https://{}.execute-api.ap-northeast-2.amazonaws.com/prod/memos
  GET - https://{}.execute-api.ap-northeast-2.amazonaws.com/prod/memos/{userId}/{memoId}
  GET - https://{}.execute-api.ap-northeast-2.amazonaws.com/prod/memos/{userId}
  PUT - https://{}.execute-api.ap-northeast-2.amazonaws.com/prod/memos/{userId}/{memoId}
  DELETE - https://{}.execute-api.ap-northeast-2.amazonaws.com/prod/memos/{userId}/{memoId}
functions:
  create: serverside-prod-create
  get: serverside-prod-get
  gets: serverside-prod-gets
  update: serverside-prod-update
  delete: serverside-prod-delete
Serverless: Publish service to Serverless Platform...