クライアントサイドJavascriptでDynamoDBのレコードを抽出する

今日もクライアントサイド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 .

コメント

タイトルとURLをコピーしました