なんか情報少なくね
という訳で忘備録として投稿
前提
- Lambda(Node.js)
やり方
index.js
const AWS = require('aws-sdk');
const dynamo = new AWS.DynamoDB.DocumentClient({
region: 'ap-northeast-1'//リージョン
});
exports.handler = async (event) => {
let params = {
TableName: TABLE_NAME,//テーブル名を指定
IndexName: INDEX_NAME,//インデックス名を指定
ExpressionAttributeNames:{'#hoge': 'hoge','#time': 'time'},
ExpressionAttributeValues:{':val': 'foo',':time': '0'},
KeyConditionExpression: '#hoge = :val and #time >= :time'//上の2文はプレースホルダー
};
const request = await dynamo.query(params).promise();
return request.Count;
}
以上。IndexName
でインデックスを指定するのが肝
おまけ
まとめて書き込みたいときはbatchWrite
が便利
ドキュメント等をみるとコールバックで処理するのが多いですが、await 〇〇.promise();で同期処理できてコールバック地獄にならない。