概要
とあるプロジェクトで、fluctを使ってコード管理していたものを、serverless(旧JAWS)に切り替えた。その際、良いなと思ったことをメモしておく。
lambdaのコード管理
fluctやserverlessは、平たくいうと、Amazon API GatewayとAmazon Lambdaでつくるサーバーレスなアプリケーションの管理を簡単にするものである。詳細はReadmeを見るのが早い。
嬉しかったこと
component、module、functionというプロジェクト構成
actions
ディレクトリしかないfluctに比べて、少し複雑に見えるが、規模が大きくなっても耐えうる構成になっている。
Stage管理ができる
serverlessだと、development, productionなどのStage管理ができる。開発中はdevelopment stageのAPI GatewayとLambdaのみにデプロイして確認ができ、より実践導入が考慮されているといえる。
API Gatewayのステージ
Lambdaのステージ
ローカル環境での簡易テストが可能
Function Runを使うと、ローカル環境で関数を走らせることが可能である。event.json
に実行時のイベントを定義できる。
± serverless function run path/to/func
Serverless: Running path/to/func...
Serverless: -----------------
Serverless: Success! - This Response Was Returned:
Serverless: {"status":200,"message":"OK"}
様々なプラグインがある
serverlessはPluginsを用意に導入できる。便利なものとしては、CORS対応用の設定を追加してくれるserverless-cors-plugin、localhostでエンドポイントを立ち上げてくれるserverless-serveなどがある。
まとめ
serverlessを使うと、API Gateway+Lambdaなアーキテクチャをより実践に導入しやすくなると思った。今後も使いドコロを見て試してゆきたい。