DynamoDB API в бессерверном режиме

Я использую бессерверную структуру для создания приложения, которое записывает и считывает данные из DynamoDB. Я слежу за их официальными документами и смотрю другие примеры на github.

Насколько я понимаю, Serverless использует AWS SDK для NodeJS под капотом.

Я заметил разницу API DynamoDB в бессерверном и официальном AWS SDK.

  1. Имена методов. Они разные: в официальных документах AWS SDK для чтения есть getItem метод (ссылка на документы), тогда как в методе Serveless get используется (ссылка) везде.

  2. Определение параметров:

В соответствии с официальной документацией мне нужно использовать следующее соглашение для создания параметров:

var params = {
  Key: {
    UserId: {
      S: '123456'
    }
  },
  TableName: 'Users'
};

dynamodb.getItem(params, function(err, data) {
   ...
})

Однако Serverless демонстрирует другой подход:

const params = {
  Key: {
    UserId: '123456'
  },
  TableName: 'Users'
}

dynamoDb.get(params, (error, result) => {}

Вопрос: Не могли бы вы объяснить разницу и почему? Это немного сбивает с толку, и сложно понять, какое соглашение следует соблюдать. Спасибо!


person skryvets    schedule 31.03.2018    source источник


Ответы (1)


После нескольких часов исследований я понял, почему.

Все примеры, которые показаны в бессерверной документации, используют определенный класс _1 _, который упрощает разработку в мире javascript, опуская типы данных DynamoDB.

Принимаемые ими методы и параметры также различны, поэтому можно отправлять / получать данные без указания типа данных. Однако, в конце концов, DynamoDB по-прежнему требуются типы, но все преобразования происходят за кулисами.

person skryvets    schedule 31.03.2018