LoginSignup
37
36

More than 5 years have passed since last update.

Serverless Framework1.0がリリースされたので触ってみる

Last updated at Posted at 2016-07-14

概要

スクリーンショット 2016-07-14 22.57.53.png

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メソッドで呼び出すための設定です。

短か!!設定ファイル、、短か!!!

serverless.yaml
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などの対応も実施されるみたいです。これからますます楽しみっすね!

37
36
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
37
36