【nodejs】一個CSV中的数据读取样例,并将其注册到DynamoDB中
你想做什么?
当手头有以列表形式存在的数据需要注册到DynamoDB时,我需要读取该列表并向DynamoDB发送PUT请求,因此我编写了这个脚本作为备忘录。由于它不是一个繁重的处理,我选择在AWS Lambda上运行它。
请留意
因为为了单次使用而很麻烦,所以我也将CSV文件和ZIP文件一起打包了。
使用模块
-
- aws-sdk
- comma-separated-values
实施
'use strict';
var fs = require('fs');
var CSV = require("comma-separated-values");
var aws = require('aws-sdk');
var docClient = new aws.DynamoDB.DocumentClient({region: '### region ###'});
exports.handler = function (event, context) {
fs.readFile('./list.csv', 'utf8', function (err, data) {
var csv = new CSV(data, {header: true}).parse();
var len = csv.length;
var lim = 0;
for (var cnt = 0; cnt < len; cnt++) {
var item = {
column_1: String(csv[cnt].column_1),
column_2: String(csv[cnt].column_2),
column_3: String(csv[cnt].column_3)
};
var params = {
TableName: 'items',
Item: item
};
docClient.put(params, function (err, data) {
lim++;
if (err) {
console.log('[ERROR]',err);
if (len === lim){
context.succeed();
}
} else {
console.log('[INFO]',data);
if(len === lim){
context.succeed();
}
}
});
}
});
};
使用列表
column_1,column_2,column_3
hoge,fuga,fugaga
假设您预计的样式是带有这种类型的标题的CSV。
最后
如果你需要多次使用的话,我认为将数据存储在S3中并从那里获取会更好。