概要
MACのローカルでserverlessフレームワークをセットアップしてAWSにデプロイするまでのメモをまとめる。
前提
今回のServerless FrameworkはNode.js 20.Xでlambda関数を作成する。
MacのローカルにはNode.jsが入っており、そのNode.jsはvoltaにより管理されている。
下記コマンドを実行して、command not foundにならないこと。またNode.jsのバージョンが20.Xになっていること。
npm -v
node -v
volta -v
MacのローカルにはAWS CLIがはいっており、下記コマンドを実行して、command not foundにならないこと。
aws -h
AWSのアカウントを保持しており、下記を実行した結果がそのアカウント情報と一致していること(アクセスキーとシークレットキーはAWSのマネジメントコンソールログイン後、IAMに移動し、当該ユーザーの詳細に移動し、「アクセスキー」の部分で確認する事ができる。シークレットキーはあとから確認できないため、わからなかったら「アクセスキー」を作り直してしまう方が早い。作り直すときは「AWSの外部のサービスから使用・・・」的なものを選んでアクセスキーを作成する)
aws configure
$ serverless -h
コマンドがnot foundにならないこと。
方法
-
任意のディレクトリで`$ serverless`コマンドを実行
-
下記の様に出るので
AWS / Node.js / HTTP API
を選択してEnter? Select A Template: … ❯ AWS / Node.js / HTTP API AWS / Node.js / Express API AWS / Node.js / Express API with DynamoDB AWS / Node.js / Scheduled Task AWS / Node.js / Simple Function AWS / Python / HTTP API AWS / Python / Flask API AWS / Python / Flask API with DynamoDB AWS / Python / Scheduled Task AWS / Python / Simple Function AWS / Compose / Serverless + Cloudformation + SAM
-
「? Name Your Project:」と聞かれたら、任意のプロジェクト名を入力してEnter
-
下記の様に出るので
Create A New App
を選択してEnter? Create Or Select An Existing App: … ❯ Create A New App
-
「? Name Your New App:」と聞かれたら、任意のアプリ名を入力してEnter
-
「Name Your Project」で指定したディレクトリに移動し、serverless.ymlを開き、下記の様にリージョンを設定
serverless.ymlprovider: name: aws runtime: nodejs20.x region: ap-northeast-1
-
「Name Your Project」で指定したディレクトリ
$ serverless deploy
コマンドを実行してデプロイ