1)客户端访问:无论如何使用客户端JavaScript(REST / Ajax / jQuery)对DynamoDB执行CRUD操作?
我知道亚马逊支持.NET和Java。
2)服务器访问:我们有没有办法使用服务器端JavaScript(Node.js)访问DynamoDB,而无需在服务器上安装Java / .NET?
答案 0 :(得分:16)
更新2012-12-05
现在有一个官方AWS SDK for Node.js,请参阅介绍性帖子AWS SDK for Node.js - Now Available in Preview Form了解详细信息,以下是最初支持的服务:
SDK支持Amazon S3,Amazon EC2, Amazon DynamoDB ,以及 Amazon Simple Workflow Service,支持其他服务 在绘图板上。 [强调我的]
更新2012-02-27
Wantworthy已经实施了一个Node.js模块,用于在发布日期后一周访问Amazon DynamoDB,因此也涵盖2),请参阅dynode:
Dynode旨在成为与亚马逊合作的简单方便的方式 DynamoDB服务。亚马逊的http api是如此复杂且不明显 与它互动。该客户旨在提供更简化的内容 使用DynamoDB的明显方法,但不妨碍你 或者限制你可以使用DynamoDB做什么。
更新2012-02-11
Peng Xie已经实施了一个Node.js模块,用于在发布日期基本上访问Amazon DynamoDB,因此已覆盖2),请参阅dynamoDB:
DynamoDB使用JSON进行通信。 [...]此模块包含请求 并负责身份验证。用户将负责 制作请求并使用结果。
不幸的是,目前还没有适用于AWS的官方/完整JavaScript SDK(有关可用产品,请参阅AWS Software Development Kits和boto [Python])。
幸运的是,Node.js库aws-lib已经为JavaScript中的多个AWS服务提供了不错的覆盖,这将是相应添加DynamoDB的良好起点。截至今天,已经提交了Add support for DynamoDB未解决的功能请求。
此外,AWS论坛用户 gmlvsk3 最近实现了专用JavaScript interface for DynamoDB,但据说您需要[a] Java运行时来运行它,因为它基于在Mozilla Rhino JavaScript引擎上 - 我还没有详细检查过代码(乍一看它虽然与例如 aws-lib 相比看起来有点不成熟,但可能会满足您的需求无论如何),所以你应该自己检查一下。
最后,您当然可以自己实现JavaScript HTTP Requests to Amazon DynamoDB(有关详细信息,请参阅API Reference for Amazon DynamoDB):
如果您不使用其中一个AWS开发工具包,则可以执行Amazon DynamoDB 使用POST请求方法通过HTTP进行操作。 POST方法 要求您在请求的标题中指定操作 在体内提供JSON格式的操作数据 请求。
答案 1 :(得分:1)
我创建了一个名为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());
});
});
答案 2 :(得分:1)
关于1),现在有AWS SDK for JavaScript in the Browser允许您访问包括DynamoDB在内的服务。
答案 3 :(得分:0)
至于2)自DDB发布日期以来我们一直在努力。它的一个关键特性是简单性/性能以及它与亚马逊官方Java / PHP库的接近程度(重试行为等):
https://github.com/teleportd/node-dynamodb
它成功地用于100多个写/秒(在远程传送)的各个地方的制作。此外,我们正在开发一个模拟版本,以便有效地测试库的客户端代码。