7

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

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

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

4

4 回答 4

16

2012-12-05 更新

现在有一个用于 Node.js 的官方AWS 开发工具包,有关详细信息,请参阅介绍性帖子AWS SDK for Node.js - 现在以预览形式提供,以下是最初支持的服务:

该开发工具包支持Amazon S3Amazon EC2Amazon DynamoDBAmazon Simple Workflow Service,并支持绘图板上的其他服务。[强调我的]


2012-02-27 更新

Wantworthy实施了一个Node.js模块,用于在发布日期后一周访问Amazon DynamoDB ,因此也涵盖了 2),请参阅dynode

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


2012-02-11 更新

Peng Xie已经实现了一个Node.js模块,用于在发布之日访问Amazon DynamoDB ,因此已经涵盖了 2),请参阅dynamoDB

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


不幸的是,截至目前,还没有适用于 AWS 的官方/完整 JavaScript 开发工具包(有关可用产品,请参阅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 DynamoDB 的 API 参考):

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

于 2012-02-07T18:06:55.490 回答
1

我创建了一个名为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());
    });
});
于 2013-04-09T23:30:32.810 回答
1

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

于 2013-11-19T20:55:58.237 回答
0

至于 2) 自 DDB 推出之日起,我们一直在努力工作。它的主要特性之一是简单性/性能以及它与 Amazon 官方 Java/PHP 库的接近程度(重试行为等):

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

它以 100+ 写入/秒(teleportd)成功地在各个地方用于生产。此外,我们正在开发一个模拟版本,以实现对库的客户端代码的有效测试。

于 2012-05-29T12:17:16.070 回答