繁体   English   中英

通过JavaScript访问Amazon的DynamoDB上的数据

[英]Accessing data on Amazon's DynamoDB via JavaScript

1)客户端访问:无论如何使用客户端JavaScript(REST / Ajax / jQuery)对DynamoDB执行CRUD操作?

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

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

更新2012-12-05

现在有一个适用于Node.js的官方AWS SDK ,请参阅AWS SDK for Node.js的介绍性文章- 现在可在预览表单中获取详细信息,以下是最初支持的服务:

SDK支持Amazon S3Amazon EC2Amazon DynamoDBAmazon Simple Workflow Service ,并支持绘图板上的其他服务。 [强调我的]


更新2012-02-27

Wantworthy实施了Node.js的模块用于访问亚马逊DynamoDB一个星期推出日期之后,因此覆盖2)为好,见倍增

Dynode旨在成为使用Amazon DynamoDB服务的简单方便的方法。 亚马逊的http api很复杂,并且不明显如何与它进行交互。 该客户端旨在提供一种使用DynamoDB的简化更明显的方式,但不会妨碍您或限制您可以使用DynamoDB执行的操作。


更新2012-02-11

彭燮基本上实现了一个Node.js模块,用于在发布日期访问Amazon DynamoDB ,因此已经覆盖2),请参阅dynamoDB

DynamoDB使用JSON进行通信。 [...]此模块包装请求并负责身份验证。 用户将负责制作请求并使用结果。


遗憾的是,截至目前,还没有适用于AWS的官方/完整JavaScript SDK(有关可用产品,请参阅AWS软件开发套件boto [Python] )。

幸运的是,已经通过Node.js库aws-lib提供了JavaScript中几个AWS服务的良好覆盖,这将是相应添加DynamoDB的良好起点。 截至目前,尚未提交添加对DynamoDB支持的未解决功能请求。

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

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

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

我创建了一个名为Dino的模块,以便更轻松地在Web应用程序中使用AWS SDK。 您可以使用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),现在浏览器中的AWS SDK for JavaScript允许您访问包括DynamoDB在内的服务

2)自DDB发布日起,我们一直在努力。 它的一个关键特性是简单/性能以及与Amazon官方Java / PHP库的接近程度(重试行为等):

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

它成功地用于各种地方的制作,有100多个写/秒(在传送时)。 此外,我们正在研究一个模拟版本,以便有效地测试库的客户端代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM