我正在将dynamoDB-local与nodejs代码一起使用。
我有以下代码:
var aws = require("aws-sdk")
aws.config.update({"accessKeyId": "aaa",
"secretAccessKey": "bbb",
"region": "us-east-1"})
var awsdb = new aws.DynamoDB({ endpoint: new aws.Endpoint("http://localhost:8000") });
awsdb.createTable({
TableName: 'myTbl',
AttributeDefinitions: [
{ AttributeName: 'aaa', AttributeType: 'S' },
],
KeySchema:[
{ AttributeName: 'aaa', KeyType: 'HASH' }
]
}, function() {
awsdb.listTables(function(err, data) {
console.log(data)
});
});
但这不是在创建表。我在日志中得到
{ TableNames: [] }
。err为空。
最佳答案
似乎您在CreateTable请求中缺少必需的ProvisionedThroughput参数。因此,发生的是CreateTable返回一个验证错误,并且ListTables成功执行而没有返回任何表(代码中的“ err”变量似乎用于ListTables调用)
例如。以下为我工作
var aws = require("aws-sdk")
aws.config.update({"accessKeyId": "aaa",
"secretAccessKey": "bbb",
"region": "us-east-1"})
var awsdb = new aws.DynamoDB({ endpoint: new aws.Endpoint("http://localhost:8000") });
awsdb.createTable({
TableName: 'myTbl',
AttributeDefinitions: [
{ AttributeName: 'aaa', AttributeType: 'S' },
],
KeySchema:[
{ AttributeName: 'aaa', KeyType: 'HASH' }
],
ProvisionedThroughput: {ReadCapacityUnits: 1, WriteCapacityUnits: 1},
}, function(err, data) {
if (err)
console.log(err, err.stack); // an error occurred
else {
awsdb.listTables(function(err, data) {
console.log(data)
});
}
});
关于node.js - 无法在dynamodb-local中创建表-AWS,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28697711/