AWS-其中一个必需的密钥没有给定值
AWS - One of the required keys was not given a value
AWS新手,尝试将数据放入表中。在阅读了文档并尝试遵循示例之后,我遇到了这个验证错误。
One of the required keys was not given a value
我的代码:
var conf = require("/directory");
var AccessKey = 'supersecretkey';
var SecretKey = 'supersecretkey';
var tableName = conf.tableCS;
var AWS = require('aws-sdk');
console.log("Endpoint: " + conf.endpoint);
AWS.config.update({
accessKeyId: AccessKey,
secretAccessKey: SecretKey,
region: conf.region,
endpoint: conf.endpoint
});
var docClient = new AWS.DynamoDB.DocumentClient();
var file = process.argv[2];
console.log("File: " + file);
var csv = require("fast-csv");
csv.fromPath(file)
.on("data", function(data) {
// Uncomment to see CSV data
// console.log(data);
var arrayLength = data.length;
for (var i = 0; i < arrayLength; i++) {
// console.log(data[i]);
var params = {
TableName: tableName,
Key: {
RefID: data
}
};
console.log("Adding a new item...");
docClient.put(params, function(err, data) {
if (err) {
console.error("Unable to add item. Error JSON:", JSON.stringify(err, null, 2));
}
else {
console.log("Added item:", JSON.stringify(data, null, 2));
}
});
// Looping through, now putItem into database
}
})
.on("end", function() {
console.log("done");
});
我发现了这个,但不了解range
的关键部分。我在下面的代码中创建表,并且有hash
键,但没有range
键。这是我的问题吗?我将如何制作范围键?
var conf = require("/directory");
var AccessKey = 'supersecretkey';
var SecretKey = 'supersecretkey';
var tableName = conf.tableCSV;
// Take input from command line
process.argv.forEach(function(val, index, array) {
console.log(index + ': ' + val);
});
console.log("Table: " + tableName);
var AWS = require('aws-sdk');
console.log("Endpoint: " + conf.endpoint);
AWS.config.update({
accessKeyId: AccessKey,
secretAccessKey: SecretKey,
region: conf.region,
endpoint: conf.endpoint
});
var dynamodb = new AWS.DynamoDB();
var params = {
TableName: tableName,
KeySchema: [{
AttributeName: 'RefID',
KeyType: 'HASH'
}],
AttributeDefinitions: [{
AttributeName: 'RefID',
AttributeType: 'S'
}],
ProvisionedThroughput: {
ReadCapacityUnits: 1,
WriteCapacityUnits: 1
}
};
dynamodb.createTable(params, function(err, table) {
if (err) {
console.log(err);
}
else {
console.log("TABLED CREATED");
console.log(table);
}
});
在表定义中,您将键命名为Ref-ID
,但在put操作中,您命名的是键Info
。如果您的表有一个名为Ref-ID
的哈希键,那么您插入的每个记录都需要一个Ref-ID
的值。
相关文章:
- API密钥使用和检查示例
- react.js中的密钥绑定
- JS对象密钥序列
- 似乎无法使用javascript从AWS 3S中删除密钥
- 加载两个具有相同父密钥名称的json文件
- 如何获取$data.Entity的密钥
- Angular ngRepeat:重复错误(尽管没有重复的密钥)
- CryptoJS和密钥/IV长度
- 我如何判断一个符号是否被用作密钥
- 抛出“你必须提供一个 appId 和主密钥!”;
- 如果删除了 localStorage 密钥,请将所有下一个密钥移动 1 位
- AngularJS:$$hashkey是一个可靠的密钥吗
- 为什么给了一个不正确的密钥,我的解密最终失败了
- CryptoJS如何每次生成一个密钥
- 如何在javascript中创建一个具有非法密钥名称的对象
- 获取下一个密钥
- AWS-其中一个必需的密钥没有给定值
- 如何返回仅包含一个特定密钥对的多个集合
- Ng-options带有一个密钥对对象数组
- 我如何从json打印密钥在我的网页上一个接一个