備忘録ようです。
DynamoDB
- DynamoDBでテーブル作成
- 項目 >> 項目の作成 で何か適当に値をつけてあげる
- 概要の下の方の「Amazon リソースネーム(ARN」をコピー
Lmabda
- 関数の作成
- 名前とかは適当にして、カスタムロールは「カスタムロールの新規作成」を選択して適当な名前のを作成
IAM
- IAM >> ロール にいってさっき作成したロールを選択する
- 「インラインポリシーの追加」を選択
- 「選択」を選択
- AWSサービスは「Amazon DynamoDB」を選択し、アクションの選択は「scan」「updateitem」にチェックをいれ、AWSリソースネームにさっきコピーした 「Amazon リソースネーム(ARN」をペースト
- あとは次にどんどん行くだけ。
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("成功");
}
});
};