2012-02-07 35 views
7

1) Truy cập ứng dụng khách: Có cách nào để thực hiện các thao tác CRUD trên DynamoDB bằng JavaScript phía máy khách (REST/Ajax/jQuery) không?Truy cập dữ liệu trên DynamoDB của Amazon qua JavaScript

Tôi biết Amazon có hỗ trợ .NET và Java.

2) Truy cập máy chủ: Có cách nào chúng tôi có thể truy cập DynamoDB bằng JavaScript phía máy chủ (Node.js) mà không cần phải cài đặt Java/.NET trên máy chủ không?

Trả lời

16

Cập nhật 2012-12-05

Hiện nay, một quan chức AWS SDK for Node.js, xem bài giới thiệu AWS SDK for Node.js - Now Available in Preview Form để biết chi tiết, đây là những dịch vụ ban đầu được hỗ trợ:

SDK hỗ trợ Amazon S3, Amazon EC2 , Amazon DynamoDBAmazon Simple Workflow Service, với hỗ trợ cho các dịch vụ bổ sung trên bản vẽ heo rừng d. [nhấn mạnh của tôi]


Cập nhật 2012-02-27

Wantworthy đã triển khai một mô-đun Node.js để truy cập Amazon DynamoDB một tuần sau ngày ra mắt của nó, do đó bao gồm 2) là tốt, xem dynode:

Dynode được thiết kế để trở thành một cách đơn giản và dễ dàng để làm việc wit h Dịch vụ DynamoDB của Amazon. Api http của Amazon là phức tạp và không rõ ràng như thế nào để tương tác với nó. Khách hàng này nhằm cung cấp một cách rõ ràng hơn cách rõ ràng để làm việc với DynamoDB, nhưng không theo cách của bạn hoặc hạn chế những gì bạn có thể làm với DynamoDB.


Cập nhật 2012-02-11

Peng Xie đã triển khai một mô-đun Node.js để truy cập Amazon DynamoDB tại ngày ra mắt của nó về cơ bản, do đó bao gồm 2) đã, xem dynamoDB:

DynamoDB sử dụng JSON để giao tiếp. [...] Mô-đun này kết thúc tốt nhất yêu cầu và quản lý xác thực. Người dùng sẽ chịu trách nhiệm về việc tạo yêu cầu và tiêu thụ kết quả.


Đáng tiếc là không có chính thức/hoàn SDK JavaScript cho AWS đến ngày hôm nay (xem AWS Software Development Kitsboto [Python] cho các dịch vụ có sẵn).

May mắn thay bảo hiểm tốt cho một số dịch vụ AWS trong JavaScript được cung cấp bởi nút.js library aws-lib đã được, mặc dù, đó sẽ là một điểm khởi đầu tốt cho việc thêm DynamoDB cho phù hợp. Một yêu cầu tính năng chưa được giải quyết ngày hôm nay đến Add support for DynamoDB cũng đã được đệ trình.

Hơn nữa, diễn đàn AWS dùng gmlvsk3 gần đây đã thực hiện dành riêng JavaScript interface for DynamoDB, nhưng được cho là bạn cần [a] Java runtime để chạy nó, bởi vì nó được dựa trên các công cụ JavaScript Mozilla Rhino - Tôi đã không xem xét mã một cách chi tiết (ngay từ cái nhìn đầu tiên nó trông hơi non nớt so với ví dụ aws-lib, nhưng có thể đáp ứng nhu cầu của bạn bất kể khóa học), vì vậy bạn nên tự mình kiểm tra.

Cuối cùng, bạn có thể thực hiện hoạt Javascript HTTP Requests to Amazon DynamoDB mình tất nhiên (xem API Reference for Amazon DynamoDB để biết chi tiết):

Nếu bạn không sử dụng một trong những SDK AWS, bạn có thể thực hiện Amazon DynamoDB hoạt động qua HTTP sử dụng phương thức yêu cầu POST. Phương thức POST yêu cầu bạn chỉ định hoạt động trong tiêu đề của yêu cầu và cung cấp dữ liệu cho hoạt động ở định dạng JSON trong phần yêu cầu .

0

cho 2) chúng tôi cũng đã làm việc kể từ ngày ra mắt DDB. Một trong những tính năng chính của nó là đơn giản/hiệu suất và khoảng cách giữa nó là (thử lại hành vi, vv) để Amazon chính thức thư viện Java/PHP:

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

Nó được sử dụng thành công trong sản xuất ở những nơi khác nhau với hơn 100 ghi/s (tại teleportd). Ngoài ra, chúng tôi đang làm việc trên một phiên bản giả mạo để cho phép kiểm tra hiệu quả mã khách hàng của thư viện.

1

Tôi đã tạo một mô-đun có tên là Dino để làm việc này dễ dàng hơn với AWS SDK trong các ứng dụng web. Bạn có thể sử dụng một cái gì đó như Restify để hiển thị dữ liệu của bạn với jQuery thông qua giao diện REST.

Giả sử bạn muốn hiển thị các trang bài đăng trên blog cho người dùng. Sử dụng Dino và Restify, bạn sẽ làm như sau:

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

Bỏ qua/lấy đúng phân trang? Cách triển khai này? Quét toàn bộ? –

Các vấn đề liên quan