0

我正在使用无服务器框架来创建一个从 DynamoDB 写入和读取数据的应用程序。我关注他们的官方文档并查看github上的其他示例。

据我了解,Serverless 在后台使用 AWS SDK for NodeJS。

我注意到无服务器和官方 AWS SDK 中的 DynamoDB API 差异。

  1. 方法名称。它们是不同的:在用于阅读的官方 AWS SDK 文档中,有一个getItem方法(文档的链接),而在无服务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) => {}

问题:有人可以解释一下区别吗?为什么会这样?这有点令人困惑,很难理解要遵循哪种约定。谢谢!

4

1 回答 1

0

经过几个小时的研究,我找到了原因。

无服务器文档中显示的所有示例都使用特定类DocumentClient,通过省略 DynamoDB 数据类型来简化 javascript 世界中的开发。

它们接受的方法和参数也不同,因此可以在不指定数据类型的情况下发送/检索数据。但是,最终 DynamoDB 仍然需要类型,但所有转换都在幕后进行。

于 2018-03-31T21:32:31.313 回答