概要

http://blog.serverless.com/serverless-v1-0-alpha1-announcement/
サーバレスな構成でアプリケーションをさくっと作れるServerless Framworkの1.0ALPHA版がリリースされたとのことで触ってみました。
インストール
以下のコマンドでインストールします
$ npm install -g serverless@alpha
以下のコマンドでヘルプが表示されればインストールOKです
$ serverless -h
セットアップ
以下のコマンドでまずはサービスを定義します。
$ serverless create --name first-service --provider aws
0系のバージョンではこれがプロジェクトという単位で分けられていました。first-service
は名前を変えてください。これはバグでS3のグローバルな名前空間制限に引っかかるみたいっす。以下該当のissue
https://github.com/serverless/serverless/issues/1458
作ったサービスのディレクトリ構成を見てみましょう。めっちゃシンプルになってる!!
後、JSONじゃなくてyamlになってる!!
├── handler.js
├── serverless.env.yaml
└── serverless.yaml
用途は以下の通り
- handler.js:Lambdaファンクションの実体
- serverless.env.yaml:リージョンやステージなどのサービス全体の環境設定
- serverless.yaml:クラウド側の使用するリソースの設定
API Gateway + Lambdaのセットアップ
serverless.yamlの設定は以下のとおり。helloってLambdaファンクションをhttps://<API Gateway エンドポイント>/dev/hello をGETメソッドで呼び出すための設定です。
短か!!設定ファイル、、短か!!!
service: horike-service
provider: aws
functions:
hello:
handler: handler.hello
events:
- http:
path: hello
method: GET
そして以下のコマンドでAWS上にデプロイします。
$ serverless deploy
以下のとおりcurlでデプロイしたAPIにアクセスすると。ちゃんとLambdaファンクションの結果が返ってきました。
[horike@horiketakahiro-no-MacBook-Pro horike-service]$curl https://ctlje3drz2.execute-api.us-east-1.amazonaws.com/dev/hello
{"message":"Go Serverless v1.0! Your function executed successfully!"}
まとめ
というわけで、Serverless Framework1.0のさわりを紹介しました。
大きく変わったところとして、API Gatewayの超絶面倒くさい設定がほとんどなくなったことがよくなったところかなと思います。これなら心を折れること無く設定ファイルを書くことも出来そうです。
ちなみに、1.0ではAWS以外にもGoogle Cloud Functions, Microsoft Azure, IBM OpenWhiskなどの対応も実施されるみたいです。これからますます楽しみっすね!