【AWS】Amazon API GatewayでAmazon DynamoDBの単一データを取得する
AWS

【AWS】Amazon API GatewayでAmazon DynamoDBの単一データを取得する

作成日:2022年01月26日
更新日:2022年01月27日

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

aws-api_gateway-dynamodb-get

【AWS】Amazon API GatewayでAmazon DynamoDBのデータを取得する

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

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

bookGet 関数を選択します。

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

js
const AWS = require("aws-sdk");

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

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

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

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

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

次は、params を作成します。

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

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

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

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

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

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

js
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 の単一データを削除します。

aws-api_gateway-dynamodb-delete

【AWS】Amazon API GatewayでAmazon DynamoDBの単一データを削除する

© 2024あずきぱんウェブスタジオ