Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 8896

【備忘録】dynamoDBをいじる Node.js

$
0
0

DynamoDBのデータを書き込んだり読み込んだりするときにみるqiita

dynamoDBをlambdaからじゃなくて外部から読み込みたい時もありますよね。
そんな時に使えるやつです

記事を探したけどれが動くかわからなかったので現時点で動くやつを書いておこう
特に詳しくないので動く重視のコードです。

よく使いそうなやつだけサンプルコード載せておきます

  • getItem 一個だけ取得
  • batchGetItem 複数取得
  • putItem 一個だけ追加
  • batchWriteItem 複数追加
  • listTable AWSアカウントに紐づいているテーブル一覧

ドキュメント

ドキュメント見ればだいたいなんでもできる

https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#putItem-property

getItem 一個だけ取得

index.js
constAWS=require("aws-sdk");//インスタンス生成constdynamodb=newAWS.DynamoDB({region:"ap-northeast-1",apiVersion:"2012-08-10",accessKeyId:"xxxxxxxxxxxxxxxx",secretAccessKey:"xxxxxxxxx",});asyncfunctiontest(){varparams={Key:{"<プライマリパーティションキー>":{S:"<キーの値>"}},TableName:"<TableName>"};constData=await(()=>newPromise((resolve)=>{dynamodb.getItem(params,function(err,data){if(err){console.error("Error occured",err);}console.log(data);resolve(data);});}))();if(Data!==undefined){console.log(Data)}}test();

batchGetItem 複数取得

取得するキーの値が同じだとエラーを吐いた。

index.js
constAWS=require("aws-sdk");//インスタンス生成constdynamodb=newAWS.DynamoDB({region:"ap-northeast-1",apiVersion:"2012-08-10",accessKeyId:"xxxxxxx",secretAccessKey:"xxxxxxxx",});asyncfunctiontest(){varparams={RequestItems:{"<TableName>":{Keys:[{"<プライマリパーティションキー>":{S:"<値>"}},{id:{S:"<値>"}}],},},};constData=await(()=>newPromise((resolve)=>{dynamodb.batchGetItem(params,function(err,data){if(err){console.error("Error occured",err);}console.log(data);resolve(data);});}))();if(Data!==undefined){console.log(Data)}}test();

putItem 一個だけ追加

iindex.js
constAWS=require("aws-sdk");//インスタンス生成constdynamodb=newAWS.DynamoDB({region:"ap-northeast-1",apiVersion:"2012-08-10",accessKeyId:"xxxxxxxxxxxxxxxxx",secretAccessKey:"xxxxxx",});asyncfunctiontest(){varparams={Item:{"<項目>":{S:""},"<項目>":{S:""},"<項目>":{S:""}},TableName:"<TableName>"};constData=await(()=>newPromise((resolve)=>{dynamodb.putItem(params,function(err,data){if(err){console.error("Error occured",err);}console.log(data);resolve(data);});}))();if(Data!==undefined){console.log(Data)}}test();

batchWriteItem 複数追加

index.js
constAWS=require("aws-sdk");//インスタンス生成constdynamodb=newAWS.DynamoDB({region:"ap-northeast-1",apiVersion:"2012-08-10",accessKeyId:"xxxxxxxK",secretAccessKey:"xxx",});asyncfunctiontest(){varparams={RequestItems:{"<TableName>":[{PutRequest:{Item:{"<キー>":{S:"<値>"},"<項目>":{S:"<値>"},"<項目>":{S:"<値>"}}}},{PutRequest:{Item:{"<キー>":{S:"<値>"},"<項目>":{S:"<値>"},"<項目>":{S:"<値>"}}}},{PutRequest:{Item:{"<キー>":{S:"<値>"},"<項目>":{S:"<値>"},"<項目>":{S:"<値>"}}}}]}};constData=await(()=>newPromise((resolve)=>{dynamodb.batchWriteItem(params,function(err,data){if(err){console.error("Error occured",err);}console.log(data);resolve(data);});}))();if(Data!==undefined){console.log(Data)}}test();

listTable AWSアカウントに紐づいているテーブル一覧

index.js
constAWS=require("aws-sdk");//インスタンス生成constdynamodb=newAWS.DynamoDB({region:"ap-northeast-1",apiVersion:"2012-08-10",accessKeyId:"xxxxxxxx",secretAccessKey:"xxx",});asyncfunctiontest(){varparams={};constData=await(()=>newPromise((resolve)=>{dynamodb.listTables(params,function(err,data){if(err){console.error("Error occured",err);}console.log(data);resolve(data);});}))();if(Data!==undefined){console.log(Data)}}test();

参考にした記事

http://kakts-tec.hatenablog.com/?page=1499360527


Viewing all articles
Browse latest Browse all 8896

Trending Articles