前回は、Amazon API Gateway で Amazon DynamoDB のデータを取得しました。

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

まずは、AWS Lambda サービスにアクセスします。

bookGet 関数を選択します。

コードソーズで、aws-sdk を呼び出します。

const AWS = require("aws-sdk")

DynamoDB の API データを取得します。

region は、東京である(ap-northeast-1)を選択します。

apiVersion は、AWS ClassList のサイトで確認します。

最新は、(2012-08-10)となっているので、こちらを選択します。

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

次は、params を作成します。

単一データを取得したいので、Key で『Book_id』を指定します。

Book_id は、DynamoDB の Book_id をコピーします。

また、DynamoDB で作成したテーブルを指定します。

exports.handler = async (event, context, callback) => {
    const params = {
        Key: {
            "Book_id": {
                S: "abcdefg"
            }
        },
        TableName: "Books"
    }

dynamodb の getItem を使って、テーブルデータを取得します。

また、エラーの場合は、エラーをコールバックします。

exports.handler = async (event, context, callback) => {
  const params = {
    Key: {
      Book_id: {
        S: "abcdefg",
      },
    },
    TableName: "Books",
  }
  try {
    const data = await dynamodb.getItem(params).promise()
    callback(null, data)
  } catch (err) {
    callback(err)
  }
}

Lambda 関数を作成したので、IAM でアクセスを許可します。

IAM サービスへアクセスしましょう。

サイドバーの『ロール』をクリックします。

image2

Lambda で作成した、bookGet のロールを選択します。

image3

『ポリシーをアタッチします』をクリックします。

image4

『AmazonDynamoDBFullAccess』にチェックを入れます。

『ポリシーのアタッチ』をクリックします。

image5

ポリシーが追加されました。

image6

Lambda に戻って、テストします。

『Test』をクリックすると、

image7

Lambda で指定した Book_id の DynamoDB データを取得することができました。

Amazon API Geteway サービスにアクセスして、テストしてみましょう。

リソースの GET を選択します。

image8

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

image9

image10

DynamoDB のデータが返って来ました。

次回は、Amazon DynamoDB の単一データを削除します。

ブログ一覧