ServerlessFramework

【AWS】Serverless Frameworkを使用した簡易サンプルを動かして挙動を確認する

どうも、AWSの勉強中のとがみんです。

Serverless Frameworkという、お手軽にServerless Applicationを管理、デプロイするためのツールについて、実際に使って簡易サンプルを作成し、挙動を確認したので、その整理をした記事になります。

Serverless Frameworkとは?

Serverless Frameworkは、Serverlessなアプリケーションの管理をするためのツールを提供します。
インフラの管理をコード化でき、デプロイもコマンド一つでできるため、管理・構築が楽に行えるようになります。

今回作成するサンプル

今回はServerless Frameworkを用いて、ブラウザからリクエストを送信し、Amazon API Gatewayを通してLamda関数を実行し、その結果のレスポンスをブラウザに返却するという簡易APIを作成します。

簡易サンプル作成手順

大まかにには、下記のようなステップで簡易サンプルを作成し動作を確認していきます。

  1. Serverless Frameworkのインストール
  2. Serverless Frameworkのサービスを作成
  3. 作成したサービスのデプロイ
  4. 作成したAPIにリクエストを送信しレスポンスを確認する
  5. サービスの削除

Serverless Frameworkのインストール

Serverless Frameworkは、serverlessという名前のnpmパッケージとして提供されているため、下記コマンドでserverless Frameworkをインストールします。

npm install serverless -g

インストールが完了したら、下記のコマンドを実行し、インストールされているかどうかを確認します。

serverless –version

下記のようにバージョン情報が確認できれば、正しくインストールされていることが確認できます。

Framework Core: 3.15.2
Plugin: 6.2.2
SDK: 4.3.2

Serverless Frameworkのサービスを作成

作業ディレクトリを作成し、Serverless Frameworkのテンプレートを作成するコマンドを実行します。

mkdir serverless-framework-test
serverless create -t aws-nodejs

今回はnode-jsのテンプレートを作成します。serverless create –helpを実行すると準備されている他のテンプレートの一覧を確認することができます。

上記のテンプレートを作成するコマンドを実行すると「handler.js」と「serverless.yml」というファイルが作成されます。

「handler.js」は、Lamdaで実行する処理を記述するファイルで、「serverless.yml」はServerless Frameworkを使う上での設定ファイルになります。

それぞれのファイルの中身は下記のように編集しています。

handler.js
このファイルに記述されているのは、引数を受け取って、statusCodemesseageと受け取った引数のinputが含まれたbodyを返却する簡単な関数が記述されています。

serverless.yml
このファイルには、Serverless Frameworkを使う上での設定が記述されています。

作成したサービスのデプロイ

ローカルPCからデプロイする場合はAWSのcredensial情報を設定しておく必要があります。

下記のコマンドを実行すると、CloudFormationにスタックが作成され、各種リソースが作成されます。

serverless deploy

CloudFromationのコンソールを確認すると、serverless-framework-test-devという名称のスタックが作成されていることが確認できます。

また、コンソールからLamda関数が作成されたことも確認できます。

作成したAPIにリクエストを送信しレスポンスを確認する

deploy時に、エンドポイントがコンソールに表示されるので、そのエンドポイントにブラウザからアクセスします。するとレスポンスが返却されます。

endpoint: GET – https://xxxxxxxxxx.execute-api.ap-northeast-1.amazonaws.com/dev/greet

レスポンスの中身に“message”: “Hello World !”のデータが入っていることが確認できました。

Lamdaが起動されたことは、CloudWatchのログで確認することができます。
CloudWatch > Log groups > /aws/lambda/serverless-framework-test-dev-hello

リソースの削除

下記のコマンドを実行すると、作成したリソースが削除されます。

serverless remove

まとめ

Serverless Frameworkを活用したAPI GatewayとLamdaの簡易サンプルを作成し挙動を確認しました。

参考

【AWS】【Serverless Framework 入門】 Serverless Framework をデフォルト設定のままデプロイして挙動を確認してみた