4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Serverless Frameworkを使ってみた

Last updated at Posted at 2016-11-22

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も作成してもらう。ついでにデフォルトのリージョンも設定しとく。

serverless.yml
   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にアクセスすると実行結果が表示される。

4
5
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
4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?