今日もクライアントサイドJavascriptでAWSネタです。今回はDynamoDBのデータを抽出してみたいと思います。
0 前提
前回に引き続き、以下の記事の「1 Amazon Cognito から IDプールを作成する」「2 AWS認証情報を取得する」を実施してください。
クライアントサイド JavaScript から AWS サービス Amazon Polly を使って音声データを生成する
AWSにはいろいろなサービスがあります。いままでサーバーサイドが必要であった機能の実装もAWSだけで構築できるようになりました。サーバーサイドがあったほうがセキュリティは向上しますが、クライアントサイドだけで構築できるとかなり効率化につなが...
その後、以下の記事の「1 UnauthロールにDynamoDBアクセスポリシーを設定する」を参考に、DynamoDBのアクセス権をアタッチしてください。
クライアントサイドJavaScriptでAWS DynamoDBのアイテムを更新する方法
昨日の記事 に引き続いて、クライアントサイドJavaScriptからAWSを使う方法シリーズです。今回は、DynamoDBのアイテムを追加・更新する処理を実装してみたいと思います。0 前提以下の記事の「1 Amazon Cognito か...
1 テストテーブルとデータ
以下のように「CoppetsCode」というテーブルがあることを前提とします。
2 全件抽出するソースコード
早速ですが、DynamoDBのテーブルの全レコードを抽出するソースコードです。
// AWS Cognito 認証情報を貼りつけ
AWS.config.region = 'XXXXXXXXXX'; // Region
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
IdentityPoolId: 'XXXXXXXXXX:YYYYYYYYYYYYYYYYYYYYYYYYYY',
});
// Create DynamoDB service object
var ddb = new AWS.DynamoDB({ apiVersion: '2012-08-10' });
var params = {
TableName: 'CoppetsCode'
};
ddb.scan(params, function (err, data) {
if (err) {
console.log("Error", err);
} else {
//console.log("Success", data.Items);
data.Items.forEach(function (element, index, array) {
console.log(element);
});
}
});
実行すると、以下のようにデータが取得できれば成功です。
3 条件に合致するレコードのみ抽出
「CodeKeyName = C#_Console」を満たすレコードのみ抽出するソースコードです。
// Create DynamoDB service object
var ddb = new AWS.DynamoDB({ apiVersion: '2012-08-10' });
var params = {
ExpressionAttributeValues: {
':s': { S: 'C#_Console' }
},
KeyConditionExpression: 'CodeKeyName = :s',
ProjectionExpression: 'CodeKeyName, Revision, Code',
TableName: 'CoppetsCode'
};
ddb.query(params, function (err, data) {
if (err) {
console.log("Error", err);
} else {
//console.log("Success", data.Items);
data.Items.forEach(function (element, index, array) {
console.log(element);
});
}
});
以下のようにデータが抽出できれば成功です。
「KeyConditionExpression」など詳しい情報は以下に公式ドキュメントがあります。
Query - Amazon DynamoDB
For additional information on how to use the Query API, please see Working with Queries .
コメント