【问题标题】:Facing issue: scan dynamo DB面临的问题:扫描 dynamoDB
【发布时间】:2018-12-04 17:18:00
【问题描述】:

我在 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);
});

【问题讨论】:

  • 您能否向我们展示您如何使用这些 API 的示例?
  • api.get('/deviceData', function (request) { // GET all users return dynamoDb.scan({ TableName: 'student', Limit: 500 }).promise() .then (响应 => 响应。项目); }); api.get('/deviceData-scan', function (request) { // GET all users return dynamoDb.scan({ TableName: 'student' }).promise() .then(response => response.Items); } );

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


【解决方案1】:

请查看如何使用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();
  },

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-25
    • 2016-10-15
    • 1970-01-01
    • 2020-07-01
    • 2012-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多