はじめに
ここ最近、AWS周りをコツコツ勉強しております。奥田と申します。
これからAWSを学び始める人やAWSに苦手意識を持っている初学者の人向けに、
ファーストステップとしてのハンズオンとして、手軽に取り組めて且つ便利そうなものはないかなと思い、
今回は『Serverless Framework × Lambdaプチハンズオン』をゆる〜く書いてみることにしました。
取り組みハードルを超下げたかったので、大体5分~30分くらいでできるような感じにまとめました。
※エラー想定など万全の解説文ではないので、必要があればググっていただけると幸いです。🙇
※暇な時に、随時アップデートしようと考えています。
このハンズオンでできるようになること
Lambda関数は、マネジメントコンソールでぽちぽち手作業で作成/管理等もできますが、関数が増えてくると手入れが大変ですよね。
今回は、Serverless Frameworkを用いて簡単にAWS Lambdaをデプロイしてみましょう。
ちょっとした自動化に使い始めるには便利なので、このハンズオンを通して、これから色々遊べるようになっちゃいましょう。
プチハンズオンスタート
まずはAWSマネジメントコンソールにログイン
※AWSアカウントをまだお持ちでない方はアカウント作成しましょう
AWS アカウント作成の流れ
AWS Cloudshellを起動させましょう
検索窓から"cloudshell"と検索すると早いです
作業ディレクトリを作成しましょう
任意の命名で、作業ディレクトリを作成しましょう。
今回は分かりやすく"work"としました。
作成したらcdコマンドで移動しましょう。
mkdir work
cd work
Serverless Framework をインストールしましょう
初期化コマンドで初期化処理をしましょう
npm init
※途中出てくる質問には全てEnterでOKです。
npm install --save-dev serverless
serverlessアプリを作成しましょう
npx serverless create --template aw-nodejs --path myapp
作成できたらlsコマンドで作成されたものを一応確認してみましょう
cat serverless.yml | grep -v '^#'
// grep -v '^#' で 「#で始まらない行をすべて選択する」
serverless.ymlを編集しましょう
vi serverless.yml
① デプロイ先を編集
② トリガーイベントを編集(今回はコメントアウトを外すだけ)
デプロイしてみましょう
npx serverless deploy
設定通りに、serverlessフレームワークがLambdaをいい感じにデプロイしてくれましたかと思います🙌
簡単ですね。
エンドポイントも確認してみましょう
デプロイ実行時に表示されたendpointsのURLをブラウザやcurlコマンドからコールすることも可能になっているので、一緒に確認してみましょう。
ここまでで一旦完走。 お疲れ様でした!
appendix
他にもいろんなサービスを起点にLambdaを動かしてみよう
・ scheduleイベント
e.g. "AWSの利用料金が心配なので毎日〇時に通知したい"など
・ S3イベント
e.g. "S3にデータが置かれたら〇〇をする"など
色々試して遊んでみてください✨
cloudformationの書式も埋め込めれる
serverless.ymlの中に、cloudformationの書式も埋め込めるようになっているので、Lambdaで使いたいサービスがあれば一緒に記述しておくことができます。
その他Tips
いちいちdeploy作業が面倒な場合は、下記コマンドで、AWS上にLambdaをdeployしなくても実行結果を見ることができたりもします。
npx serverless invoke local --function hello
お片付け
npx serverless remove
cloudshellも片付ける場合
ディレクトリを全部消してあげればOKです
最後に一言
AWSの悪魔「AWS最高!AWS最高!」