びっくりするぐらいAWS Lambda開発を楽にしてくれるServerless フレームワーク

with コメントはまだありません

AWS Lambdaを使った本格的な開発で使えるServerlessフレームワークを紹介する。Lambda開発をびっくりするぐらい楽にしてくれます。

 

セットアップ

Severless開発で使うIAMユーザーの作成

まずはServerless開発で使うIAMユーザーを作成しよう。このユーザーのアクセス許可にはAdministratorAccessを割り当てる。

iam-allow.png.formatted

 

Serverlessのインストール

Serverless本体をインストールする。

 

Serverlessプロジェクトの作成

Serverlessを無事にインストールできたらプロジェクトを作成する。対話形式で進んでいくので特別迷うところは無い。

※slsはserverlessのエイリアス。

 

今回作成したサンプルプロジェクトはこんな感じで設定した。

この中で聞かれるIDとシークレットは当然先ほど作成したIAMユーザーのもの(上記の例ではXXXと書き換えている)。

 

Lambdaファンクションの作成

首尾よくServerlessプロジェクトを作成できたらプロジェクトルートに移ろう。試しにLambdaファンクションを作ってみる。

このコマンドを打つと対話形式でいくつか質問されるので、API Gatewayのエンドポイントを使うような設定をしてみた。

 

このコマンドが完了すると次のようにLambdaファンクションを開発するためのディレクトリが作られている。

 

ここまで来たら後はLambdaファンクションとエンドポイントをデプロイするだけだ。次のコマンドを実行しよう(ファンクションのデプロイを先に実行すること)。

 

コンソールに表示されるURLにアクセスしてみよう。次のように表示されていれば成功だ。

 

npmパッケージの入れ方

各Lambdaファンクションはプロジェクト内でいい感じに管理されている。npmパッケージもファンクション毎に管理しよう。

※ファンクション毎がだるかったらhandler.jsを出力するようなビルドを組めばOK

具体的には、ファンクションルート(今回の例で言えば /first-endpoint/hello)にnode_modulesを置き、handler.jsへインポートして使えば良い。