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

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

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

bookGets 関数を選択します。

コードソーズで、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 を作成します。

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

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

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

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

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

デプロイした後、テストしてみます。

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

image2

エラーメッセージが返って来ました。

これは、アクセスが拒否されたということなので、IAM でアクセスできるよう設定します。

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

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

image3

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

image4

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

image5

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

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

image6

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

image7

Lambda に戻って、再度テストしてみましょう。

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

image8

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

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

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

image9

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

image10

image11

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

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

ブログ一覧