2012-02-07 3 views
7

1) Клиентский доступ: Есть ли какие-либо действия для выполнения CRUD-операций на DynamoDB с использованием JavaScript на стороне клиента (REST/Ajax/jQuery)?Доступ к данным DynamoDB от Amazon через JavaScript

Я знаю, что Amazon поддерживает .NET и Java.

2) Доступ к серверу: Есть ли способ получить доступ к DynamoDB с использованием JavaScript-сервера на стороне сервера (Node.js) без необходимости установки Java/.NET на сервере?

ответ

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 предназначен для простого и легкого использования в работе h Amazon's Служба DynamoDB. Http api Амазонки является сложным и не очевидным, как взаимодействовать с ним. Этот клиент стремится предложить упрощенный более очевидный способ работы с DynamoDB, но не вставая на пути или ограничивая, что вы можете делать с DynamoDB.


Обновление 2012-02-11

Peng Xie реализовал Node.js модуль для доступа Amazon DynamoDB на дату ее запуска в основном, таким образом покрывая 2) уже, см dynamoDB:

DynamoDB использует JSON для связи. [...] Этот модуль завершает запрос и выполняет проверку подлинности. Пользователь будет отвечать за , обрабатывая запрос и потребляя результат.


К сожалению, нет никакого официального/полн JavaScript SDK для АМС на сегодня (см AWS Software Development Kits и boto [Python] для доступных предложений).

К счастью, достойный охват для нескольких служб AWS в JavaScript предоставляется Узлом.js library aws-lib, хотя это было бы хорошей отправной точкой для добавления DynamoDB соответственно. На сегодняшний день уже зарегистрирован нерешенный запрос функции на Add support for DynamoDB.

Далее, AWS форум пользователи gmlvsk3 недавно реализованы посвященный JavaScript interface for DynamoDB, но, мол, вы потребность [а] Java во время выполнения, чтобы запустить его, поскольку он основан на движке Mozilla Rhino JavaScript - я не проверял код (на первый взгляд это выглядит немного незрелым, хотя по сравнению с, например, aws-lib, но может удовлетворить ваши потребности, независимо от того, конечно), поэтому вы должны это проверить самостоятельно.

Наконец, вы можете реализовать JavaScript HTTP Requests to Amazon DynamoDB себя, конечно (см API Reference for Amazon DynamoDB подробности):

Если вы не используете один из SDKs AWS, вы можете выполнять Amazon DynamoDB операции над HTTP с использованием метод запроса POST. Метод POST требует, чтобы вы указали операцию в заголовке запроса, а предоставили данные для операции в формате JSON в теле запроса .

0

как для 2) мы также работаем с даты запуска DDB. Одной из ключевых особенностей является простота/производительность и насколько близко она (повторить поведение и т.д.) для Amazon официальных библиотек Java/PHP:

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

Он успешно используется в производстве в различных местах с 100+ записи/s (при телепортале). Кроме того, мы работаем над измененной версией, чтобы обеспечить эффективную проверку клиентского кода библиотеки.

1

Я создал модуль под названием Dino, чтобы упростить работу с AWS SDK в веб-приложениях. Вы можете использовать что-то вроде Restify, чтобы предоставить свои данные jQuery через интерфейс REST.

Предположим, вы хотели отображать страницы сообщений блога для пользователя. Использование Дино и 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()); 
    }); 
}); 
+0

Пропустить/перенести правильную разбивку на страницы? Как это реализовано? Полное сканирование? –