2
0

More than 1 year has passed since last update.

Serverless Frameworkを使ってLambda + API Gateway + DynamoDBの環境を構築してみる

Posted at

目次

  1. Serverlessのインストール
  2. サービスの作成
  3. サービスをデプロイしてみる
  4. API Gatewayの設定
  5. DynamoDBの設定
  6. まとめ

1. Serverless Frameworkのインストール

Serverlessはnpmのパッケージとして公開されているため、ターミナルより以下を打つとグローバルにインストールされる。

$ npm install -g serverless

正しくインストールできているかserverless --versionと打って以下の表示になっているかどうかで確認できる。

$ serverless --version
Framework Core: 2.72.3 (local)
Plugin: 5.5.4
SDK: 4.3.2

サービスの作成

Serverlessではサービスという単位で実行環境を構築しているらしい。

そして実際にサービスを構築するためには以下をターミナルで打てば良い。

$ serverless create --template aws-nodejs --name my-special-service --path my-special-service

すると以下のようなディレクトリ群が作成される。

- my-special-service
    - .gitignore
    - handler.js
    - serverless.yml

ここで、グローバル(自分の場合だと/usr/local/lib/)にserverlessを置いた状態だとエラーが起きることがあるため、
my-special-service階層でもう一度serverlessをインストールする。

$ cd my-special-service
$ npm install serverless

すると以下のようなディレクトリ群が作成される。

- my-special-service
    - .serverless
    - node_modules
    - .gitignore
    - handler.js
    - package-lock.json
    - package.json
    - serverless.yml

以下にそれぞれのファイルの詳細を記載する。

.serverless

serverlessライブラリ群。基本いじることがないと思う。

serveless.yml

サービス全体の設定を行うためのファイル。
ここを書き換えることでそれぞれの環境構築が可能になる。

hander.js

Lambdaで実行する関数をここに記載していく。

package.json/package-lock.json/.gitignore

省略

サービスをデプロイしてみる

ここで作成したサービスをプロバイダー上へデプロイしてみる。
デプロイするためには以下をターミナル上で打てば良い。

$ serverless deploy -v 

-vオプションを付けるとverboseというモードでデプロイが実施され、途中経過がターミナル上で確認できる。

ここまででLambdaの関数を構築・デプロイまで完了したので、プロバイダーのLambdaの関数画面から確認すると良い。

API Gatewayの設定

API Gatewayを設定するためには以下をserverless.ymlに加える。

# Lambdaのイベントトリガーを設定
events:
# トリガーとしてAPIGatewayを構築
  - http:
    path: sample/test # リソースを指定
    method: post # メソッドを指定
    integration: lambda # 統合サービスをLambdaにする

一旦デプロイするために以下をターミナルに打つ。

$ serverless deploy -v 

ここまででAPI Gatewayを構築・デプロイまでが完了したので、プロバイダーのLambdaの関数画面から確認すると良い。

DynamoDBの設定

# リソースの構築
resources:
  Resources:
    # DynamoDBの構築
    DynamoDbTable:
      Type: 'AWS::DynamoDB::Table'
      Properties:
        # キーの型を指定
        AttributeDefinitions:
          -
            AttributeName: id
            AttributeType: S
            -
            AttributeName: name
            AttributeType: S

ここまででDynamoDBを構築・デプロイまでが完了したので、プロバイダーのDynamoDBの画面から確認すると良い。

参考文献

2
0
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
2
0