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

46
Serverless Framework 使使使使使 @tnaototo Naoto Teruya RyukyuInteractive, Inc. Developer

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

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

Serverless Framework 使ってる話

@tnaototo  Naoto Teruya  RyukyuInteractive, Inc.  Developer

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

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

自己紹介  Naoto Teruya (@tnaototo)

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

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

話すこと

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

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

話さないこと

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

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

話さないこと

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

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

注意点

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

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

アジェンダ

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

導入経緯

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

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

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

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

導入経緯

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

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

導入経緯

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

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

導入経緯

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

イメージ

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

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

導入経緯

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

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

導入経緯

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

ググる

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

ありました

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

Serverless Framework

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

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

Serverless Framework でできること

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

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

Serverless Framework でできること

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

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

導入経緯

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

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

導入経緯

解消できた

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

ステキすぎる・・

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

Demo

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

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

Demo

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

$ npm install [email protected] -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

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

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

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

Demo その 2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ステキですね

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

失敗したことなどなど

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

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

失敗したことなどなど

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

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

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

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

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

失敗したことなどなど

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

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

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

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

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

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

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

その他

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

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

まとめ

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

質問ありますか?

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

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

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

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