プロジェクト

全般

プロフィール

バックエンドリソースの構築

今回は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

cloud9_4.PNG

"samconfig.toml"というファイルがあるのでCloud9上のエディタで開き、"s3_bucket"の値を前の手順で作成した"tmp-us-east-1-アカウントID"に更新します。

samコマンドでビルドとデプロイを行います。

sam build
sam deploy

cloud9_5.PNG

deployが成功したらApiGateway、Lambda、DynamoDBのコンソールをそれぞれ開いてリソースが作成されていることを確認します。
(作成されたものの設定内容については口頭で簡単に説明します)