バックエンドリソースの構築¶
今回はApiGateway、Lambda、DynamoDBのリソースをCloud9上からSAM(ServerlessApplicationModel)のコマンドを実行してまとめて作成してしまいます。
SAMを使うとテンプレートファイルに記述した内容に基づいて、内部的にはCloudFormationというサービスにより各種リソースを作成できます。
Cloud9環境は最初からAWS CLIやSAM CLI、Node.js、Python3などがインストールされているのですぐに開発作業を開始できます。
ApiGateway
DynamoDB
SAM
CloudFormation
■IAMロールの作成¶
IAMのコンソール画面を開きます
- 一般的なユースケースからLambdaを選択 > 次のステップ
- AWSLambdaBasicExecutionRole、AmazonDynamoDBFullAccessの2つのAWS管理ポリシーを選択 > 次のステップ
- タグは空のまま > 次のステップ
- ロール名に「StudyS2-Lambda-Role」を入力
- 作成
■Lambdaデプロイ用のS3バケットの作成¶
"jq"というコマンドが必要なのでインストールします
sudo yum install -y jq
下記コマンドでS3バケットを作成します。
ACCOUNT_ID=`aws sts get-caller-identity | jq -r ".Account"` aws s3 mb s3://tmp-us-east-1-${ACCOUNT_ID}
コマンドのレスポンスでバケット名が出力されるのでコピーしておきます
■バックエンドリソースの作成¶
Cloud9環境上で"template.yaml"ファイルが存在するフォルダまで移動します。
cd ~/environment/study2-4-sources/study2-api
"samconfig.toml"というファイルがあるのでCloud9上のエディタで開き、"s3_bucket"の値を前の手順で作成した"tmp-us-east-1-アカウントID"に更新します。
samコマンドでビルドとデプロイを行います。
sam build sam deploy
deployが成功したらApiGateway、Lambda、DynamoDBのコンソールをそれぞれ開いてリソースが作成されていることを確認します。
(作成されたものの設定内容については口頭で簡単に説明します)