Serverless Framework 使ってる話(node.js)

Post on 16-Apr-2017

768 views 2 download

Transcript of Serverless Framework 使ってる話(node.js)

Serverless Framework 使ってる話

@tnaototo  Naoto Teruya  RyukyuInteractive, Inc.  Developer

- 琉球インタラクティブ所属 - エンジニアやってます - インフラも見てます - マネジメントも ( ちょっと ) やってます- めんどくさがり- ビール大好き- スプラトゥーン大好き- Ingress やってます ( が、ルールわかってない )

自己紹介  Naoto Teruya (@tnaototo)

- なんで Serverless Framework ?- v0.5.6 の使い方- 失敗したこと

話すこと

- AWS Lambda + Node.js での開発- v1.0 について

話さないこと

- AWS Lambda + Node.js での開発- v1.0 について

話さないこと

本スライド及び Demo はServerless Framework v0.5.6で記載しています

注意点

- 導入経緯- Serverless Framework とは- Demo- 失敗したことなどなど- まとめ

アジェンダ

導入経緯

- 行動履歴を取得したい導入経緯

- 行動履歴を取得したい- リアルタイムじゃないからSQS に

導入経緯

- 行動履歴を取得したい- リアルタイムじゃないからSQS に- EC2 で受け口作るのはちょっと・・

導入経緯

- 行動履歴を取得したい- リアルタイムじゃないからSQS に- EC2 で受け口作るのはちょっと・・- API Gateway + AWS Lambda で動作確認はできている ( 手動 )

導入経緯

イメージ

- 行動履歴を取得したい- リアルタイムじゃないからSQS に- EC2 で受け口作るのはちょっと・・- API Gateway + AWS Lambda で動作確認はできている ( 手動 )- 手動でポチポチしたくない

導入経緯

- 行動履歴を取得したい- リアルタイムじゃないからSQS に- EC2 で受け口作るのはちょっと・・- API Gateway + AWS Lambda で動作確認はできている ( 手動 )- 手動でポチポチしたくない- コードで管理したい ( 簡単に・・ )

導入経緯

ググる

ありました

Serverless Framework

- API Gateway 、 Lambda のデプロイ- Lambda の実行- Lambda のログ表示- ステージでの管理- IAM Role の作成などなど

Serverless Framework でできること

- API Gateway 、 Lambda のデプロイ- Lambda の実行- Lambda のログ表示- ステージでの管理- IAM Role の作成などなど

Serverless Framework でできること

- 行動履歴を取得したい- リアルタイムじゃないからSQS に- EC2 で受け口作るのはちょっと・・- API Gateway + AWS Lambda で動作確認はできている ( 手動 )- 手動でポチポチしたくない- コードで管理したい ( 簡単に・・ )

導入経緯

- 行動履歴を取得したい- リアルタイムじゃないからSQS に- EC2 で受け口作るのはちょっと・・- API Gateway + AWS Lambda で動作確認はできている ( 手動 )- 手動でポチポチしたくない- コードで管理したい

導入経緯

解消できた

ステキすぎる・・

Demo

- インストール- Lambda ファンクション作成- Lambda デプロイ- API Gateway にデプロイ※事前に実行用 IAM User を作る必要あり

Demo

$ npm install serverless@0.5.6 -g$ sls -v$ sls project create -s dev$ tree$ sls function create functions/demo$ tree$ sls function deploy -s dev$ sls endpoint deploy -s dev

Demo

ステキさが伝わりました?

Demo その 2

- API + 簡易フォーム- もちろんサーバーレス!- G gle F rm◯◯ ◯ でもいいけど、 独自デザインで (ry- 落ちてると面倒なことに- クレームになりやすい

Demo その 2 – お問い合わせ API

Demo その 2 – お問い合わせ API

Demo その 2 – お問い合わせ API

ソースhttps://github.com/naotty/contact-api

※ 不具合があっても自己責任でお願いします

Demo その 2 – お問い合わせ API

事前準備- Serverless Framework 用 IAM User- SNS Topic - Subscription は Email

Demo その 2 – お問い合わせ API

デプロイ・動作確認(Readme の内容をなぞります・・ )

Demo その 2 – お問い合わせ API

ステキですね

失敗したことなどなど

- _meta にあるファイルはデフォルトで .gitignore されているので、作り直しで消える

失敗したことなどなど

- プロジェクトを消す失敗したことなどなど

- $ sls project remove で消えることは消えるが、全ステージが消える・・- _meta の中身は消えるので、ちゃんとステージを指定する - $ sls project remove -s dev

- API Gateway デプロイ時の -a オプション

失敗したことなどなど

- このオプションを付けないとOPTIONS メソッドが生成されず、 CORS や x-api-key カスタムヘッダーを使う時に 403 エラーになる

- 新しくステージを作る失敗したことなどなど

- 変数ファイルが作成時に作られるため、それを見る箇所があるとエラーで止まる - 対策 CloudFormation 無しで作る

$ sls project create -c true    変数セットしてから $ sls resources deploy -s dev

- 付与しないといけない権限が強い- API キーの設定は手動- API Gateway 、 Lambda の削除は手動- 消えゆく v0.5 ・・

その他

- Serverless Framework 使えば  API Gateway ・ Lambda をコード管理可能- デプロイも簡単- サーバーレス最高

まとめ

質問ありますか?

ご清聴ありがとうございました

焦るんじゃない、俺は開発に集中したいだけなんだ