Tag: amazon dynamodb

扫描两个时间戳之间的查询

我正在为DynamoDB使用aws-sdk编写nodejs 5.7.1应用程序。 我有一个我用下面的代码创build的事件表: var statsTableName='bingodrive_statistics'; var eventNameColumn = 'event_name'; var eventTimeColumn = 'event_time'; var eventDataColumn = 'event_data'; var params = { TableName: statsTableName, KeySchema: [ // The type of of schema. Must start with a HASH type, with an optional second RANGE. { // Required HASH type attribute AttributeName: eventNameColumn, KeyType: 'HASH', }, { // […]

AWS node.js在失败的batchWrite()上自动重试

根据这个aws doc http://docs.aws.amazon.com/general/latest/gr/api-retries.html自动重试function是build立在aws sdk在我的情况node.js aws sdk。 我像这样configuration了DocumentClient对象: var dynamodb = new AWS.DynamoDB.DocumentClient({region: 'us-west-2', retryDelayOptions: {base: 50}, maxRetries: 20}); 但我仍然不能让它自动重试我。 我想要自动重试所有的UnprocessedItems。 你能指出我的错误在哪里吗? 谢谢

如何使用javascript aws-sdk支持dynamoDB中的事务?

我们有一个用node.js编写的微服务,我们使用dynamoDB来存储数据。 值以密钥forms存储在json格式中。 在更新服务调用中,我们获取一个密钥的值,更新json并保存它。 最近,我们遇到了两个电话想要更新同一个密钥的值的情况。 所以第一次调用读取值,然后第二次调用读取值,第一次调用更新&保存,然后第二次更新&保存值(通常情况下的竞争条件),所以在这种情况下,通过第一次调用更新没有得到反映在DB中。 为了处理这个问题,我研究了一下和了解了dynamoDB的事务库。 但似乎还没有在node-js sdk中。 另外,我search了版本控制和乐观locking,但是我在node-js sdk中没有find对此的支持。 有没有更新? 如果在node-js sdk中支持不会来,那么还有其他的select吗? 什么可能是处理这个问题的最好方法?

发电机数据库错误无效ProjectionExpression:文档path中使用的expression式属性名称未定义; 属性名称:#P

我正在尝试使用某些2主键列从dynamo db中获取和删除数据,其中之一是保留关键字timestamp 。 当我使用主键之一获取数据,那么它工作正常,但是当我试图删除使用投影expression式中的两个主键字段,它给我一个错误,如: ValidationException:无效ProjectionExpression:未定义文档path中使用的expression式属性名称; 属性名称:#P 这是我的params对象 {TableName:'Log',ProjectionExpression:'username,#P',ExpressionAttributeNames:{'#P':'timestamp'},ExpressionAttributeValues:null} 用户名和时间戳是主键列。 这个东西不是只在这张桌子上工作的。 在其他一些表中,我有同样的情况,但不会把我这个错误。 只有在这种情况下,我得到的错误。

在vogels或节点SDK中检测AWS dynamodb连接错误

我正在使用npm vogels软件包,该软件包build立在主要的aws-sdk软件包上,用于访问所有的AWS服务,包括DynamoDB。 我试图得到很好的error handling,当无法连接(错误的凭据等),但目前的vogels查询只是无限期挂起,当我故意打破我的连接参数。 我没有看到任何连接error handlingAPI可用,但理想情况下,我想绑定一个error事件处理程序或类似的,所以当我不能连接,程序不会简单地挂起。

Amazon Web Services DynamoDB错误

我正在使用Dynamoose来处理Node.js中的DynamoDB请求和操作。 当我尝试获得一个logging时,我得到这个错误。 (电子邮件是前面定义的variables) User.get({ 'email' : email }, function(err, user) { // if there are any errors, return the error if (err) return done(err); } err正在返回 ValidationException:无法将参数转换为数值:[object Object] 任何想法,为什么我会得到这个错误?

AWS Lambda和Dynamo:一个或多个参数值无效

我刚开始使用AWS,我试图通过从DynamoDB发布/获取的API Gateway启动并运行Lambda。 我正在使用dynamodb-doc的内联代码编辑器。 我不断得到错误: One or more parameter values were invalid: Condition parameter type does not match schema type 我不确定这是为什么。 我的表在Dynamo中设置,分区键为BusinessAsset_ID和GSI BusinessAsset_ID-index。 奇怪的是,我的POST实际上工作,并成功地将项目放入Dynamo。 我的代码如下。 提前致谢! 编辑:我正在使用“Lambda函数”集成types和“使用Lambda代理集成”checkbox的API网关GET方法。 我也尝试使用该方法作为具有path覆盖和执行angular色的“AWS服务”。 它导致与上面相同的错误消息相同的502错误的网关错误。 'use strict'; const doc = require('dynamodb-doc'); const dynamo = new doc.DynamoDB(); exports.handler = function(event, context) { switch (event.httpMethod) { case 'GET': var params = { TableName: event.queryStringParameters.TableName, […]

无法通过lambda从nodejs代码访问dynamodb

我一直试图从lambdatesting这个,但无法继续。 var Alexa = require("alexa-sdk"); var dynamoDBConfiguration = { "accessKeyId": "useraccess", "secretAccessKey": "usersecretkey", "region": "us-east-1" }; var AWS = require("aws-sdk"); AWS.config.update(dynamoDBConfiguration); var promisify = require("es6-promisify"); var dynClient = new AWS.DynamoDB.DocumentClient({"region":"us-east- 1"}); //convert callback style functions to promises const dbGet = promisify(dynClient.get,dynClient); const dbPut = promisify(dynClient.put,dynClient); const dbDelete = promisify(dynClient.delete,dynClient); var startStateHandlers = (GAME_STATES.STARt, { "StartGame": […]

如何检查DynamoDB状态,同时chaning WriteUnits吞吐量并等待它完成?

如何等待DynamoDB的活动状态? 我只想升级DynamoDB,而没有其他进程正在缩放/更新表。 因此,我想知道如何查看是否有其他进程正在扩展DynamoDB表? 根据dynamodb.waitFor函数的文档我只能检查tableExists和tableNotExists状态: var params = { TableName: 'STRING_VALUE' /* required */ }; dynamodb.waitFor('tableExists', params, function(err, data) { if (err) console.log(err, err.stack); // an error occurred else console.log(data); // successful response }); 然而,这似乎只有“tableExists”和“tableNotExists”状态,但似乎不允许检查“活动”和“更新”状态? 背景:在一个多工作环境中,每个工作人员都会尝试在达到写入限制的情况下开始高档工作。 在从表中读取当前的预置吞吐量并开始新的缩放操作之前,如何使等待任何缩放/更新完成是必要的。

如何在本地使用GlobalSecondaryIndexes在DynamoDB上创build表?

我DynamoDB在Windows 7本地安装。我的项目是一个Node.js(0.12.0),我使用aws-sdk。 版本DynamoDB:2012-08-10 这项工作 – > dynamodb.createTable({ TableName: 'Users', AttributeDefinitions: [{AttributeName: 'userId', AttributeType: 'S'}], KeySchema: [{AttributeName: 'userId', KeyType: 'HASH'}], ProvisionedThroughput: { 'ReadCapacityUnits': 5, 'WriteCapacityUnits': 5 } }, function () { … }); 这不起作用 – > dynamodb.createTable({ TableName: 'Users', AttributeDefinitions: [{AttributeName: 'userId', AttributeType: 'S'}], KeySchema: [{AttributeName: 'userId', KeyType: 'HASH'}], ProvisionedThroughput: { 'ReadCapacityUnits': 5, 'WriteCapacityUnits': 5 }, […]