スクショで安心プチハンズオン 〜駆け足でServerless Framework × Lambdaプチハンズオンを雑にまとめてみる〜

はじめに

ここ最近、AWS周りをコツコツ勉強しております。kazuです。

これからAWSを学び始める人やAWSに苦手意識を持っている初学者の人向けに、
ファーストステップとしてのハンズオンとして、手軽に取り組めて且つ便利そうなものはないかなと思い、
今回は『Serverless Framework × Lambdaプチハンズオン』をゆる〜く書いてみることにしました。

取り組みハードルを超下げたかったので、大体5分~30分くらいでできるような感じにまとめました。

※暇な時に、文章等随時アップデートしようと考えています。
※現況、エラー想定など万全の解説文ではないため、必要があればググっていただけると幸いです。🙇

このハンズオンでできるようになること

Lambda関数は、マネジメントコンソールでぽちぽち手作業で作成/管理等もできますが、関数が増えてくると手入れが大変ですよね。

ScreenShot 2022-12-15 9.59.41.png

今回は、Serverless Frameworkを用いて簡単にAWS Lambdaをデプロイしてみましょう。

ちょっとした自動化に使い始めるには便利なので、このハンズオンを通して、これから色々遊べるようになっちゃいましょう。

プチハンズオンスタート

まずはAWSマネジメントコンソールにログイン

スクリーンショット

ScreenShot 2022-12-15 7.44.00.png

※AWSアカウントをまだお持ちでない方はアカウント作成しましょう
AWS アカウント作成の流れ

AWS Cloudshellを起動させましょう

検索窓から”cloudshell”と検索すると早いです スクリーンショット

ScreenShot 2022-12-15 7.44.34.png

スクリーンショット

ScreenShot 2022-12-15 7.44.44.png

作業ディレクトリを作成しましょう

任意の命名で、作業ディレクトリを作成しましょう。
今回は分かりやすく”work”としました。
作成したらcdコマンドで移動しましょう。

mkdir work
cd work

スクリーンショット

ScreenShot 2022-12-15 7.40.06.png

Serverless Framework をインストールしましょう

初期化コマンドで初期化処理をしましょう

npm init

※途中出てくる質問には全てEnterでOKです。 スクリーンショット

ScreenShot 2022-12-15 8.12.22.png
npm install --save-dev serverless
【npm初心者】なんんとなく使っていた npm install の --save-dev ついて調べてみた
スクリーンショット
ScreenShot 2022-12-15 8.16.19.png
ScreenShot 2022-12-15 8.16.43.png

serverlessアプリを作成しましょう

npx serverless create --template aw-nodejs --path myapp

スクリーンショット

ScreenShot 2022-12-15 8.17.42.png

作成できたらlsコマンドで作成されたものを一応確認してみましょう スクリーンショット

ScreenShot 2022-12-15 8.27.38.png
cat serverless.yml | grep -v '^#'

// grep -v '^#' で 「#で始まらない行をすべて選択する」

serverless.ymlを編集しましょう

vi serverless.yml

① デプロイ先を編集

スクリーンショット

ScreenShot 2022-12-15 8.38.51.png

② トリガーイベントを編集(今回はコメントアウトを外すだけ)

スクリーンショット

ScreenShot 2022-12-15 8.41.58.png

デプロイしてみましょう

npx serverless deploy

スクリーンショット

ScreenShot 2022-12-15 8.45.27.png
ScreenShot 2022-12-15 8.54.22.png

設定通りに、serverlessフレームワークがLambdaをいい感じにデプロイしてくれましたかと思います🙌
簡単ですね。

エンドポイントも確認してみましょう

デプロイ実行時に表示されたendpointsのURLをブラウザやcurlコマンドからコールすることも可能になっているので、一緒に確認してみましょう。 スクリーンショット

ScreenShot 2022-12-15 9.06.02.png

ここまでで一旦完走。 お疲れ様でした!

appendix

他にもいろんなサービスを起点にLambdaを動かしてみよう

・ scheduleイベント
e.g. “AWSの利用料金が心配なので毎日〇時に通知したい”など

・ S3イベント
e.g. “S3にデータが置かれたら〇〇をする”など

Serverless Framework - AWS Lambda Events
The Serverless Framework documentation for AWS Lambda, API Gateway, EventBridge, DynamoDB and much more.

色々試して遊んでみてください✨

cloudformationの書式も埋め込めれる

serverless.ymlの中に、cloudformationの書式も埋め込めるようになっているので、Lambdaで使いたいサービスがあれば一緒に記述しておくことができます。
スクリーンショット

ScreenShot 2022-12-15 9.24.16.png
ScreenShot 2022-12-15 9.24.57.png

その他Tips

いちいちdeploy作業が面倒な場合は、下記コマンドで、AWS上にLambdaをdeployしなくても実行結果を見ることができたりもします。

npx serverless invoke local --function hello

スクリーンショット

ScreenShot 2022-12-15 7.19.52.png

お片付け

npx serverless remove

スクリーンショット

ScreenShot 2022-12-15 7.32.56.png

cloudshellも片付ける場合

ディレクトリを全部消してあげればOKです

最後に一言

AWSの悪魔「AWS最高!AWS最高!」

image.png

補足資料

AWSサービス毎の請求額を毎日Slackに通知してみた | DevelopersIO
AWSの料金は、「月額いくら?」や「今どれぐらい?」などと気になるものです。今回は、請求額と内訳を毎日Slackに通知する仕組みを作ってみました。

コメント

タイトルとURLをコピーしました