serverless framework 使ってる話(node.js)
TRANSCRIPT
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
https://github.com/serverless/serverless
- 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 [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
ステキさが伝わりました?
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 をコード管理可能- デプロイも簡単- サーバーレス最高
まとめ
質問ありますか?
ご清聴ありがとうございました
焦るんじゃない、俺は開発に集中したいだけなんだ