面临的问题:扫描dynamo DB

时间:2018-09-28 11:45:01

标签: amazon-web-services aws-lambda amazon-dynamodb

我已经在nodejs中创建了api以扫描和查询dynamoDB表(包含70K记录)。 我被扫描API卡住了。我有两个用于扫描的API- 1.扫描表的限制为500-得到正确的响应 2.扫描表没有任何限制-响应码403

如果我通过cli不受限制地调用同一查询,则会得到完整的响应。

没有得到什么问题。

api.get('/deviceData', function (request) { // GET all users
  return dynamoDb.scan({ 
        TableName: 'student', 
        Limit: 500
    }).promise()
      .then(response => response.Items);
});

api.get('/deviceData-scan', function (request) { // GET all users
  return dynamoDb.scan({ 
        TableName: 'student'
    }).promise()
      .then(response => response.Items);
});

1 个答案:

答案 0 :(得分:0)

请检查如何使用scan multiple time帮助您。

function getData() {
    let params = {
      TableName: 'student'
    };
    let finalResult = [];
      let queryExecute = function () {
        documentClient.scan(params, function (err, result) {
          if (err) {
            console.log('failure', err);
          } else {
            finalResult = finalResult.concat(result.Items);
            // check if more data exists.
            if (result.LastEvaluatedKey) {
              params.ExclusiveStartKey = result.LastEvaluatedKey;
              queryExecute();
            } else {
              console.log('all data', finalResult);
            }
          }
        });
      };
      queryExecute();
  },