前回は、AWS Lambda と Amazon DynamoDB を連携しました。

今回は、Amazon API Gateway で送信したデータを Amazon DynamoDB に保存します。

まずは、Amazon API Gateway にアクセスします。

作成した、API を選択します。

リソースの POST をクリックします。

image2

『統合リクエスト』をクリックします。

image3

マップングテンプレートの『application/json』をクッリックします。

image4

application/json 内を、以下のコードに書き換えます。

#set($inputRoot = $input.path("$"))
{
    "title": "$inputRoot.title",
    "author": "$inputRoot.author"
}

※値になるところは、『””』を入れ忘れないよう注意しましょう。

『保存』をクリックします。

image5

次に、AWS Lambda サービスへアクセスします。

bookCreate のコードソース内の params を書き換えます。

Book_id は、ランダムの文字列になるようにします。

また、Title と Author はeventを使用し、POST リクエストのデータを取得するようにします。

const AWS = require("aws-sdk")
const dynamodb = new AWS.DynamoDB({
  region: "ap-northeast-1",
  apiVersion: "2012-08-10",
})

exports.handler = async (event, content, callback) => {
  const params = {
    Item: {
      Book_id: {
        S: Math.random().toString(32).substring(2),
      },
      Title: {
        S: event.title,
      },
      Author: {
        S: event.author,
      },
    },
    TableName: "Books",
  }
  await dynamodb.putItem(params).promise()
}

Deploy をクリックし、デプロイしておきましょう。

再び、API Gateway へ戻って、テストします。

テストをクリックすると、

image6

image7

ステータス 200 が返って来ました。

DynamoDB サービスにアクセスし、データが保存されているか確認します。

image8

先程送信したデータが保存されていました。

次回は、Amazon DynamoDB のデータを取得します。

ブログ一覧