我已经连接到我用此代码的Lambda创建了dynamo的本地计算机
console.log('Starting Function Now');
const AWS = require("aws-sdk");
const docClient = new AWS.DynamoDB.DocumentClient({region: 'us-east-1'})
exports.handler = function(event,ctx,callback){
let scanParameters = {
"TableName": "Accommodation_Request",
"FilterExpression": "SSD_ID = :val",
"ExpressionAttributeValues": {":val": {"N": "2"}},
"ProjectionExpression": 'SSD_ID,AI_Org_ID'
};
console.log(scanParameters)
console.log("Your Student information");
docClient.scan(scanParameters, function(err,data){
if(err){
callback(err, null)
} else{
callback(null,data)
}
});
};
运行Lambda之后,我得到了这个结果
{
"Items": [],
"Count": 0,
"ScannedCount": 5
}
问题:我无法以SSD_ID = 1返回正确的扫描结果
可能是在过滤器中使用String而不是Number或具有复合分区键的情况下>
我想还有更多数据要看。 “ LastEvaluatedKey”中是否有一个值?当您使用过滤器执行扫描操作时,您可能不会在特定请求上获得任何结果。 LastEvaluatedKey
值应传递到下一个请求的ExclusiveStartKey
中。在获取任何数据之前,您可能会有许多空响应。扫描时应格外小心,通常不属于生产工作负载的一部分(当然确实存在例外情况)。