LoginSignup
6
4

More than 5 years have passed since last update.

Serverless Frameworkを初めて使ったので覚え書き

Last updated at Posted at 2018-09-11

最初に

案件で初めてServerlessFrameworkを使用しました。
自分の認識が正しいのか読んでくださった方にレビューを頂きたいのと、
将来忘れた頃に自分が作る事になるかもしれないので覚え書きとしてまとめておきました。
間違いがあれば編集リクエストを投げてくださると大変有難いです。宜しくお願いします。

Serverless Framework

AWS CloudFormationのラッパーだよ。
CloudFormationはテンプレートを与えてやるとアプリケーションが構築出来ちゃうやつだよ。
👉今回はYAMLでテンプレートを書いたよ。
👉しかも、デプロイはコマンド一発で出来ちゃうよ。
👉デプロイすると、上から順番に一気に実行するよ。転けると途中で止まっちゃうよ。全部成功してから立ち上がるよ。
👉失敗すると、前のデプロイも取り消されちゃうよ。
👉一個だけデプロイしたい時は、コマンドで指定できるよ。

開発の流れ

  1. サーバ側(Cognito)を用意する
  2. テンプレートを作成する
  3. デプロイする
  4. 出来上がる

コマンドの種類

基本コマンド
sls
デプロイ
sls deploy
特定の関数だけデプロイ
sls deploy -f hoge
特定のAPIステージを切りたい
sls deploy --stage hoge

ロール

それぞれLambdaが立つけど、ロールは共有されるよ

テンプレート(YAML)の書き方

service: hoge

custom:
    defaultStage: dev
    defaultProfile: default
    defaultRegion: ap-northeast-1
    congnitoARN: "arn:aws:cognito-idp:ap-northeast-1:hogehogehugahuga~~~"
provider:
    name: aws
    runtime: nodejs8.10
    timeout: 29
    environment:
        TZ: Asia/Tokyo
    ##opt:stageにはステージ名が入る
    ##sls deploy --stage hoge などでデプロイをかけない場合は
    ##defaultStageに設定したステージ名が入る(この場合はdevが入る)
    stage: ${opt:stage, self:custom.defaultStage}
    profile: ${opt:profile, self:custom.defaultProfile
    region: ${opt:region, self:custom.defaultRegion}
iamRoleStatements:
    - Effect: "Allow"
      Resource: "arn:aws:dynamodb:${self:provider.region}:*:table/hogehuga"
      Action:
        - "dynamodb:GetItem"
        - "dynamodb:PutItem"
        - "dynamodb:Update"
        - "dynamodb:Query"
        - "dynamodb:DeleteItem"
Function:
  lambdaの名前:
    handler:どのJSを読み込む?
    description:説明文
    event: //キックされるタイミング
    -http: //APIGatewayの事


Lambdaを追加する時はindex.jsにファイルをインポートしてあげなきゃダメだよ。

デプロイしたものを削除したい

YAMLのdefaultStageを削除したいステージ名に変更してから、
sls remove を実行する。

6
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4