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

今日もクライアントサイドJavascriptでAWSネタです。今回はDynamoDBのデータを抽出してみたいと思います。

0 前提

前回に引き続き、以下の記事の「1 Amazon Cognito から IDプールを作成する」「2 AWS認証情報を取得する」を実施してください。

https://usefuledge.com/clientside-js-call-aws-service.html

その後、以下の記事の「1 UnauthロールにDynamoDBアクセスポリシーを設定する」を参考に、DynamoDBのアクセス権をアタッチしてください。

https://usefuledge.com/client-side-js-update-aws-dynamodb.html

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」など詳しい情報は以下に公式ドキュメントがあります。

https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Query.html#API_Query_RequestSyntax

速攻でメモできる QuickNote リリースしました!

QuickNoteは動作が超軽量でサクサクかけるノートアプリです。一瞬の閃きを逃さずにノートを開き書き始めることができます。 アカウント登録も不要です。お試しあれ!

Excel操作をコマンドで! proBoarderExcel

Excelはマウスで操作するのが基本ですが、マウス操作に疲れてはいませんか? キーボードでExcel操作ができるようになるアプリです。オープンソースで無料です。

積み上げ! Daily Stack リリースしました!

Daily Stack は日々の積み上げを管理するToDoアプリです。過去の積み上げの振り返りだけでなく、ツイート機能もあります。 アカウント登録不要ですぐに使い始めることができます。

ExecNote.app リリースしました!

ExecNoteは、コードが実行できるMarkdownアプリケーションです。Markdownドキュメント内に記載したコードをクリックすると実行ができます。わざわざターミナルを 起動させる必要がありません!無料ですのでもしよければダウンロードをお願いします。

About Me

11年目のシステムエンジニアです。アプリで生活や仕事を改善したい🐱仕事効率化、自動化のアプリ開発が得意です、ご相談ください。 🚀エンタメ系アプリの開発も模索中🐬社内SEや個人アプリ開発者、システムエンジニアになりたい人と繋がりたい🐱