通过JavaScript访问Amazon DynamoDB上的数据

1)客户端访问:是否有使用客户端JavaScript(REST / Ajax / jQuery)在DynamoDB上执行CRUD操作?

我知道亚马逊支持.NET和Java。

2)服务器访问:有什么办法可以使用服务器端JavaScript(Node.js)访问DynamoDB,而无需在服务器上安装Java / .NET?

2012-12-05更新

现在有一个适用于Node.js的官方AWS开发工具包,有关详细信息,请参阅AWS SDK for Node.js – 现在可在预览表单中获得的信息,以下是最初支持的服务:

SDK支持Amazon S3 , Amazon EC2 , Amazon DynamoDB和Amazon Simple Workflow Service ,并支持绘图板上的其他服务。 [强调我的]


更新2012-02-27

Wantworthy在发布date一周后实现了一个用于访问Amazon DynamoDB的Node.js模块,因此也覆盖了2),参见dynode :

Dynode旨在成为使用Amazon DynamoDB服务的简单易行的方式。 亚马逊的http api是复杂的,并不明显如何与它进行交互。 此客户端旨在提供使用DynamoDB的简化更明显的方法,但不会妨碍您或使用DynamoDB限制您的工作。


更新2012-02-11

Peng Xie已经在其发布date基本实现了一个用于访问Amazon DynamoDB的Node.js模块,因此已经涵盖了2),参见dynamoDB :

DynamoDB使用JSON进行通信。 […]这个模块包装了请求并且负责authentication。 用户将负责制定请求并消耗结果。


不幸的是,到目前为止,还没有官方/完整的AWS JavaScript SDK(请参阅AWS软件开发工具包和boto [Python]了解可用的产品)。

幸运的是,JavaScript中的几个AWS服务的体面覆盖已经由Node.js库aws-lib提供 ,这对于相应地添加DynamoDB来说是一个很好的起点。 截至今天尚未解决的function请求添加对DynamoDB的支持已被提交。

此外,AWS论坛用户gmlvsk3最近为DynamoDB实现了专门的JavaScript接口 ,但据说您需要运行Java运行时 ,因为它基于Mozilla Rhino JavaScript引擎 – 我还没有仔细查看代码乍一看,它看起来有点不成熟,虽然相比,如aws-lib ,但可能会涵盖您的需求,无论如何),所以你应该检查出来自己。

最后,您当然也可以自己实现JavaScript 到Amazon DynamoDB的 JavaScript 请求 (有关详细信息,请参阅Amazon DynamoDB的API参考 ):

如果您不使用其中一个AWS开发工具包,则可以使用POST请求方法通过HTTP执行Amazon DynamoDB操作。 POST方法要求您在请求的头部指定操作,并在请求的主体中以JSON格式提供操作的数据。

我创build了一个名为Dino的模块,以便在Web应用程序中使用AWS开发工具包。 你可以使用像Restify这样的东西通过REST接口将数据展示给jQuery。

假设你想显示一个用户的博客文章页面。 使用Dino和Restify,您可以执行以下操作:

server.get('/posts/:user_id', function(req, res, next){ Post.find({ match: { user_id: req.params.user_id }, skip: req.params.skip || 0, take: req.params.take || 10 }, function(err, posts){ return res.send(posts.toJSON()); }); }); 

关于1),现在在浏览器中有适用于JavaScript的AWS开发工具包 ,允许您访问包括DynamoDB在内的服务 。

至于2)自DDB发布date以来,我们一直在努力。 它的一个关键特性是简单性和性能,以及它是多么接近(重试行为等)到Amazon官方Java / PHP库:

https://github.com/teleportd/node-dynamodb

它被成功地用于各种地方的生产,每次写入超过100次(传送)。 另外,我们正在开发一个模拟版本,以便对库的客户端代码进行高效的testing。