LoginSignup
2
6

More than 5 years have passed since last update.

LambdaでDynamoDB操作

Posted at

備忘録ようです。

DynamoDB

  1. DynamoDBでテーブル作成
  2. 項目 >> 項目の作成 で何か適当に値をつけてあげる
  3. 概要の下の方の「Amazon リソースネーム(ARN」をコピー

Lmabda

  1. 関数の作成
  2. 名前とかは適当にして、カスタムロールは「カスタムロールの新規作成」を選択して適当な名前のを作成

IAM

  1. IAM >> ロール にいってさっき作成したロールを選択する
  2. 「インラインポリシーの追加」を選択
  3. 「選択」を選択
  4. AWSサービスは「Amazon DynamoDB」を選択し、アクションの選択は「scan」「updateitem」にチェックをいれ、AWSリソースネームにさっきコピーした 「Amazon リソースネーム(ARN」をペースト
  5. あとは次にどんどん行くだけ。

Lambdaサンプルコード

var AWS = require("aws-sdk");
var dynamo = new AWS.DynamoDB.DocumentClient();

exports.handler = function(event, context) {
    var param = {
        TableName : "Test",
        FilterExpression : "key1 = :val",
        ExpressionAttributeValues : {":val" : "aaa"}
    };
    dynamo.scan(param, function(err, data) {
        if (err) {
            console.log("エラー = " + err);
            context.fail(err); // エラー時
        } else {
            console.log("成功 = " + data);
            context.succeed(data); // 正常時
        }
    });
};
var AWS = require("aws-sdk");
var dynamo = new AWS.DynamoDB.DocumentClient();

exports.handler = function(event, context) {
    var params = {
        TableName: 'Test',
        Key: {
            "key1": "aaa" // Hashキー
        },
        AttributeUpdates: {
            "key2": {
                'Action': 'PUT',       // 置き換え
                'Value': "moji" // 文字列
            }
        }
    };
    dynamo.update(params, function (err, data) {
        if (err) {
            console.log("失敗" + err);
        } else {
            console.log("成功");
        }
    });
};
2
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
6