无法在dynamodb-local-aws中创build表
我正在使用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) }); });
但是这不是创build表格。 我在日志中获得{ TableNames: [] }
。 err为null。
看起来您在CreateTable请求中缺less必需的ProvisionedThroughput参数。 所以发生了什么是CreateTable返回一个validation错误和ListTables执行成功,没有返回任何表(您的代码中的“err”variables似乎是为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) }); } });
在发出一个createTable之后,你必须等到这个表被有效地创build。 一旦表被创build,它将出现在你的listTables调用。 您可以使用describeTable调用等待。
http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#createTable-property
CreateTable是一个asynchronous操作。 收到CreateTable请求后,DynamoDB立即返回带有CREATETING的TableStatus的响应。
您可以使用DescribeTable API来检查表状态。
- 将ConditionalOperator设置为OR的DynamoDB扫描仍在执行AND
- 在dynamodb预期的约束,以防止重复
- DynamoDB:SET list_append无法使用aws sdk
- 使用Amazon KMSencryption值,使用带有Lambda的DynamoDB存储/检索(NodeJS)
- 在DynamoDB中使用params“sorting”
- 在Dynamo dB的获取操作中,“在参数中缺less必需的键”键
- 使用lambda函数将数据库抓取为JSON
- DynamoDB Javascript – 通过主键和范围键数组查询?
- Vogels是Amazon的dynamoodb mapper和nodejs的不错select吗?