1)クライアントアクセス:クライアント側のJavaScript(REST / Ajax / jQuery)を使用してDynamoDBでCRUD操作を実行する方法はありますか?
Amazonが.NETとJavaをサポートしていることは知っています。
2)サーバーアクセス:サーバーにJava / .NETをインストールせずに、サーバー側のJavaScript(Node.js)を使用してDynamoDBにアクセスする方法はありますか?
1)クライアントアクセス:クライアント側のJavaScript(REST / Ajax / jQuery)を使用してDynamoDBでCRUD操作を実行する方法はありますか?
Amazonが.NETとJavaをサポートしていることは知っています。
2)サーバーアクセス:サーバーにJava / .NETをインストールせずに、サーバー側のJavaScript(Node.js)を使用してDynamoDBにアクセスする方法はありますか?
更新2012-12-05
Node.js用の公式AWSSDKがあります。紹介記事のAWSSDKforNode.jsを参照してください-詳細についてはプレビューフォームで利用可能になりました。最初にサポートされたサービスは次のとおりです。
SDKは、Amazon S3、Amazon EC2、Amazon DynamoDB、および Amazon Simple Workflow Serviceをサポートし、図面上の追加サービスをサポートします。[強調鉱山]
更新2012-02-27
Wantworthyは、リリース日から1週間後にAmazon DynamoDBにアクセスするためのNode.jsモジュールを実装しました。したがって、2)もカバーしています。dynodeを参照してください。
Dynodeは、AmazonのDynamoDBサービスを操作するためのシンプルで簡単な方法となるように設計されています。Amazonのhttpapiは複雑で、それを操作する方法がわかりません。このクライアントは、DynamoDBを操作するための単純化された、より明白な方法を提供することを目的としていますが、DynamoDBで実行できることを邪魔したり制限したりすることはありません。
更新2012-02-11
Peng Xieは、起動日にAmazon DynamoDBにアクセスするためのNode.jsモジュールを実装しているため、基本的に2)をカバーしています。dynamoDBを参照してください。
DynamoDBは通信にJSONを使用します。[...]このモジュールはリクエストをまとめ、認証を処理します。ユーザーは、リクエストを作成し、結果を消費する責任があります。
残念ながら、現在のところAWS用の公式/完全なJavaScript SDKはありません(利用可能な製品については、 AWSソフトウェア開発キットとboto [Python]を参照してください)。
幸い、JavaScriptでのいくつかのAWSサービスの適切なカバレッジは、Node.jsライブラリaws-libによってすでに提供されています。これは、それに応じてDynamoDBを追加するための良い出発点になります。今日の時点で、DynamoDBのサポートを追加するための未解決の機能リクエストもすでに提出されています。
さらに、AWSフォーラムユーザーgmlvsk3は最近DynamoDB専用のJavaScriptインターフェースを実装しましたが、 Mozilla Rhino JavaScriptエンジンに基づいているため、実行するには[a]Javaランタイムが必要と思われます-コードの詳細はまだ確認していません(一見すると、aws-libなどと比較すると少し未熟に見えますが、もちろんニーズに対応できる場合があります)。自分で確認する必要があります。
最後に、もちろん、AmazonDynamoDBへのJavaScriptHTTPリクエストを自分で実装できます(詳細については、 Amazon DynamoDBのAPIリファレンスを参照してください)。
AWS SDKのいずれかを使用しない場合は、POSTリクエストメソッドを使用してHTTP経由でAmazonDynamoDBオペレーションを実行できます。POSTメソッドでは、リクエストのヘッダーで操作を指定し、リクエストの本文で操作のデータをJSON形式で提供する必要があります。
WebアプリケーションでAWSSDKを簡単に操作できるように、Dinoというモジュールを作成しました。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());
});
});
1)に関しては、ブラウザにAWS SDK for JavaScriptがあり、DynamoDBなどのサービスにアクセスできます。
2)DDBの発売日から同様に取り組んでいます。その重要な機能の1つは、シンプルさ/パフォーマンスと、Amazonの公式Java / PHPライブラリにどれだけ近いか(再試行動作など)です。
https://github.com/teleportd/node-dynamodb
100回以上の書き込み/秒(テレポート)で、さまざまな場所での本番環境での使用に成功しています。さらに、ライブラリのクライアントコードの効率的なテストを可能にするために、モックバージョンに取り組んでいます。