![aws lambda DynamoDBから最新のレコードを指定した件数取得する](https://d1gk62opoknolq.cloudfront.net/wp-content/uploads/2019/12/E-27.jpg)
まず、lambda関数でdynamoDB内のレコードを取得する場合には、取得される順番が取得ごとに異なってしまうため、DynamoDBでソートキーを決め、順番が固定にされる必要があります。
もし、ソートキーを設定できていない方は、こちらの記事を参考にしてください。
最新のレコードを取得するには、ソートキーを降順に取得します。
そこから、取得する件数を指定すれば、「最新のレコードを指定した件数取得」することが可能です。
では、サンプルを見ていきましょう。
const AWS = require('aws-sdk');
const dynamo = new AWS.DynamoDB.DocumentClient();
exports.handler = (event, context, callback) => {
var table = テーブル名;
var limit = 取得レコード数;
const params = {
TableName: table,
Limit : limit,
ScanIndexForward:false,
};
dynamo.query(params, function(err, data) {
data.Items.sort(function(a, b) {
if (a.id > b.id) {
return 1;
} else {
return -1;
}
})
if (err) {
context.fail(err); // エラー時
} else {
context.succeed(data); // 正常時
}
});
};
params変数に
Limitを指定することで、取得数の上限を決めます。
ScanIndexForwardにfalseを指定し、降順でデータを取得することができます。
関連書籍
created by Rinker
¥2,618 (2024/09/07 13:44:11時点 楽天市場調べ-詳細)
created by Rinker
¥3,300 (2024/09/07 22:25:54時点 楽天市場調べ-詳細)