Serverless Framework
HTTPSでデータを受けるWebAPIを作成する必要がありAPI Gatewayを使うと安く簡単にできそうな気がした。
せっかくなので最近噂のServerless Frameworkを使ってみた。
自分用に手順をまとめておく。
Qiitaデビュー(^_^;)
##serverless frameworkのインストール
インストールにはnpmやnode.jsが必要らしい。
yumで入れると古いらしいので、↓こちらを参考にインストール。
http://qiita.com/nki2/items/9a15eb151a9e389af318
nvmのインストールはこっちを参考に
http://arfyasu.hatenablog.com/entry/2016/01/26/212543
# yum install git
% git clone https://github.com/creationix/nvm.git ~/.nvm && cd ~/.nvm && git checkout `git describe --abbrev=0 --tags`
どうもnvmがbashスクリプトなので、bash前提らしい。
tcsh使いのヲレにどーしろと orz
しかたないので、bash立ち上げて作業。
% bash
$ . .nvm/nvm.sh
$ nvm --version
0.32.1
入れられるバージョン確認
$ nvm ls-remote
いっぱいあってどのバージョン入れていいのかわかんない…
↓ここ見たらv6.9.1 LTS が推奨って書いてあった。
https://nodejs.org/ja/
$ nvm install v6.9.1
なんか自分のホームディレクトリの下にがんがんプログラムが入って気持ち悪い(/_;)
結局nodeとかnpmは以下のフォルダに入るのでPATH通しとく。
/home/ikeda/.nvm/versions/node/v6.9.1/bin/
ようやくserverless frameworkをインストール。
% npm install -g serverless
AWS CLIも準備
pipアップグレード
# pip install --upgrade pip
# pip install awscli
AWS CLI設定
% aws configure
AWS Access Key ID [None]: xxxxxxxxxxxxxxxxx
AWS Secret Access Key [None]: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Default region name [None]: ap-northeast-1
Default output format [None]: json
##serverless frameworkを使ってみる
bashを起動。
% bash
使い方の詳細はドキュメント
https://serverless.com/framework/docs/
###プロジェクト作成
$ mkdir work
$ cd work
$ sls create --template aws-python --name Serverless-test
Serverless: Generating boilerplate…
_______ __
| _ .-----.----.--.--.-----.----| .-----.-----.-----.
| |___| -__| _| | | -__| _| | -__|__ --|__ --|
|____ |_____|__| \___/|_____|__| |__|_____|_____|_____|
| | | The Serverless Application Framework
| | serverless.com, v1.1.0
-------'
Serverless: Successfully generated boilerplate for template: "aws-python"
雛形のままデプロイしてみる。
$ sls deploy
普通にデプロイしたらヴァージニアリージョンに作られたので、消す。
$ sls remove
改めて東京リージョンに作成する。
$ sls deploy --region ap-northeast-1
###API Gatewayも使う
雛形だとLambdaだけなので、serverless.ymlを編集してAPI Gatewayも作成してもらう。ついでにデフォルトのリージョンも設定しとく。
region: ap-northeast-1
events:
- http:
path: test
method: get
で、再度デプロイ。
$ sls deploy
状態確認
$ sls info
Service Information
service: Serverless-test
stage: dev
region: ap-northeast-1
api keys:
None
endpoints:
GET - https://8bnjsplqna.execute-api.ap-northeast-1.amazonaws.com/dev/test
functions:
Serverless-test-dev-hello: arn:aws:lambda:ap-northeast-1:954323098815:function:Serverless-test-dev-hello
ちゃんとendpointにアクセスすると実行結果が表示される。