我有一个带有NodeJS 10.x的AWS Lambda。这个Lambda试图扫描基于“FilterExpression”的DynamoDB表。我正在使用DocumentClient执行“扫描”操作。尽管使用了各种方法,但我无法读取和迭代结果对象。
我尝试使用以下方法:(1)var flatData=AWS.DynamoDB.Converter。解组(itemdata);(2) var flatData=AWS.DynamoDB.Converter。输出({“M”:itemdata});(3) var flatData=AWS.DynamoDB.Converter。输出({“M”:itemdata})
(1)和(3)工作,即当我控制台时。记录我得到的平面数据:{origin:undefined,status\u history:undefined,r\u id:undefined,external\u注意:undefined,…}
DynamoDB表有3条我正在使用的FilterExpression的匹配记录。NodeJS代码也迭代了3次,但使用如上所述的值。
所有这些键都有值。我想知道如何获取我们上面看到的键的值。我尝试了JSON. stringify()、JSON. parse(),但没有任何运气。顺便说一句,我正在为我的Lambda:exports.handler=函数(事件、上下文、回调){...
我犯了一个非常基本的错误,因为我在尝试各种选择。我所要做的就是:
data.Items.forEach(function(itemdata) {
.....
itemdata.status_history
itemdata.r_id
您不需要将其转换为普通的javascript对象,因为响应将在普通的javascript对象中。我不喜欢使用扫描操作,因为它会消耗更多的RCU。进行查询操作。
TLDR:
扫描的输出响应如下(AWS Dynamo Link)
{
"ConsumedCapacity": {
"CapacityUnits": number,
"GlobalSecondaryIndexes": {
"string" : {
"CapacityUnits": number,
"ReadCapacityUnits": number,
"WriteCapacityUnits": number
}
},
"LocalSecondaryIndexes": {
"string" : {
"CapacityUnits": number,
"ReadCapacityUnits": number,
"WriteCapacityUnits": number
}
},
"ReadCapacityUnits": number,
"Table": {
"CapacityUnits": number,
"ReadCapacityUnits": number,
"WriteCapacityUnits": number
},
"TableName": "string",
"WriteCapacityUnits": number
},
"Count": number,
"Items": [
{
// **Your Data Will Be Here**
}
],
"LastEvaluatedKey": {
"string" : {
"B": blob,
"BOOL": boolean,
"BS": [ blob ],
"L": [
"AttributeValue"
],
"M": {
"string" : "AttributeValue"
},
"N": "string",
"NS": [ "string" ],
"NULL": boolean,
"S": "string",
"SS": [ "string" ]
}
},
"ScannedCount": number
}
预期的DB获取结果将在“Items”数组中。并且输出将不是Dynamodb JSON格式。因此,不需要使用他们的工具解析数据。
例如,如果我有一个活动表,它的排序键是一个日期字段(updatedAt),并且它有一百万行。如果我执行一个限制为10的扫描(为了得到最近的10个活动),我显然会得到10行,但我会因为读取100万行而被收费吗?成本是我主要关心的问题。
我是AWS DynamoDB的新手,阅读了留档后,我不能100%确定在SCAN操作中使用“限制”参数时成本计算会发生什么。 我知道应该设计表,以便主要使用查询操作,并且扫描将扫描整个表,从而消耗大量的读取容量。我还知道FilterExpression不会影响扫描整个表的成本,但会过滤整个扫描后返回的内容,如果扫描的项目总数超过1 MB的最大数据集大小限制,则会停止扫描并返回结果。 我不确定的是,“
正如使用boto3完全扫描dynamoDb中所解释的,我构建了一个解决方案,使用某些条件完全扫描dynamoDb表。这是我的代码: 但是当代码被执行时,它会进入一个无限循环。这是LastEvaluatedKey每次迭代的输出: 它一直在这两对之间循环。 编辑: 我添加了do_scan方法。
我正在尝试使用Java aws sdk版本1.11.140使用限制为1的DynamoDBScanExpression 即使我使用. with Limit(1)即。 返回所有条目的列表,即7。我做错什么了吗? P. S.我尝试使用cli进行查询 返回我只有1个结果。
我们有一个设置,其中各种工作节点执行计算并更新DynamoDB表中的相对状态。该表充当工作节点活动的一种历史记录。看门狗节点需要定期扫描表,并构建一个表示工作节点及其作业的当前状态的对象。因此,我们的应用程序能够扫描表并按时间顺序检索数据(即按时间戳排序)是很重要的。表最终会太大,无法扫描到本地内存进行后期排序,所以我们扫描后无法排序。 从AWS留档读取主键: DynamoDB使用分区键值作为内部
我正在尝试使用contains FilterExpression从AWS Dynamo DB scan获取数据。我正在使用以下参数,但收到的响应为空: {“Items”:[],“Count”:0,“ScannedCount”:792,“LastEvaluatedKey”:{“ID”:“b123456789”} 我想根据数组中的字符串进行过滤,例如:orange from fruits:['oran