2012-02-07 23 views
7

1) Acceso de cliente: ¿Hay alguna forma de realizar operaciones CRUD en DynamoDB utilizando JavaScript del lado del cliente (REST/Ajax/jQuery)?Acceso a datos en DynamoDB de Amazon a través de JavaScript

Sé que Amazon tiene soporte para .NET y Java.

2) Acceso al servidor: ¿hay alguna manera de que podamos acceder a DynamoDB utilizando JavaScript del lado del servidor (Node.js) sin tener que instalar Java/.NET en el servidor?

Respuesta

16

actualización 2012-12-05

En la actualidad existe un funcionario AWS SDK for Node.js, ver el puesto de introducción AWS SDK for Node.js - Now Available in Preview Form para más detalles, aquí están los servicios soportados inicialmente:

El SDK es compatible con Amazon S3, Amazon EC2 , Amazon DynamoDB, y Amazon Simple Workflow Service, con soporte para servicios adicionales en el verraco de dibujo re. [el énfasis es mío]


actualización 2012-02-27

Wantworthy ha implementado un módulo de Node.js para acceder Amazon DynamoDB una semana después de su fecha de lanzamiento, cubriendo de este modo 2), así, ver dynode:

Dynode está diseñado para ser una manera simple y fácil de trabajar con ingenio h El servicio DynamoDB de Amazon . La API de Amazon es complicada y no obvia, como para interactuar con ella. Este cliente tiene como objetivo ofrecer una forma simplificada más obvia de trabajar con DynamoDB, pero sin interferir en su camino o limitar lo que puede hacer con DynamoDB.


actualización 2012-02-11

Peng Xie ha implementado un módulo de Node.js para acceder Amazon DynamoDB en su fecha de lanzamiento, básicamente, cubriendo de este modo 2) ya, ver dynamoDB:

DynamoDB usa JSON para la comunicación. [...] Este módulo finaliza la solicitud y se encarga de la autenticación. El usuario será responsable de elaborando la solicitud y consumiendo el resultado.


Desafortunadamente, no hay SDK oficial/AWS completa JavaScript para que a partir de hoy (ver AWS Software Development Kits y boto [Python] de las ofertas disponibles).

Afortunadamente, el Nodo proporciona una buena cobertura para varios servicios de AWS en JavaScript.js library aws-lib ya, que sería un buen punto de partida para agregar DynamoDB en consecuencia. Hasta el día de hoy, ya se ha presentado una solicitud de función no resuelta al Add support for DynamoDB.

Además, AWS usuario del foro gmlvsk3 ha puesto en marcha recientemente dedicada JavaScript interface for DynamoDB, pero se supone que necesidad [a] de ejecución de Java para ejecutarlo, porque se basa en el motor JavaScript Mozilla Rhino - No he revisado el código en detalle aún (a primera vista parece un poco inmaduro en comparación con, por ejemplo, aws-lib, pero puede cubrir sus necesidades independientemente del curso), por lo que debe verificarlo usted mismo.

Por último, se puede implementar JavaScript HTTP Requests to Amazon DynamoDB a sí mismo, por supuesto (ver la API Reference for Amazon DynamoDB para más detalles):

Si no utiliza uno de los SDK de AWS, puede realizar operaciones de Amazon DynamoDB través de HTTP utilizando el método de solicitud POST. El método POST requiere que especifique la operación en el encabezado de la solicitud y proporcionan los datos para la operación en formato JSON en el cuerpo de la solicitud .

0

en cuanto a 2) hemos estado trabajando también desde la fecha de lanzamiento de DDB. Una de sus principales características son la simplicidad/rendimiento y lo cerca que está (reintentar comportamiento, etc.) a las bibliotecas oficiales Amazon Java/PHP:

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

Se utiliza con éxito en la producción en varios lugares con más de 100 escritura/s (en teleportarse). Además, estamos trabajando en una versión burlada para permitir pruebas eficientes del código de cliente de la biblioteca.

1

Creé un módulo llamado Dino para facilitar el trabajo con AWS SDK en aplicaciones web. Puede usar algo como Restify para exponer sus datos a jQuery a través de una interfaz REST.

Supongamos que quiere mostrar páginas de publicaciones de blog para un usuario. El uso de Dino y Restify, usted haría lo siguiente:

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

¿Se salta/toma la paginación adecuada? ¿Cómo esto implementado? ¿Análisis completo? –

Cuestiones relacionadas