Lambda(Node.js)からDynamoDBを検索する – AWS

Lambda(Node.js)からDynamoDBを検索する – AWS

Lambda(Node.js)からDynamoDBを検索してみます。

scanは全件検索します。

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

exports.handler = (event, context, callback) => {
  dynamo.scan({TableName : "sample_tbl"}, function(err, data) {
    if (err) {
      context.fail(err); // エラー時
    } else {
      context.succeed(data); // 正常時
    }
  });
};

これで「テスト」を押すと、「AccessDeniedException」とエラーがでました。

どうもLambda(Node.js)からDynamoDBにアクセスできる権限がない場合に発生するようです。

Lambdaの関数の設定タブを押してロールを確認します。

ここでは「sampleRole」としています。

IAM(Identify & Access Management)を選択します。

左側で「ロール」をクリックし、「sampleRole」をクリックします。

「ポリシーのアタッチ」をクリックし、「AmazonDynamoDBFullAccess」をアタッチします。

sampleRoleに「AmazonDynamoDBFullAccess」がアタッチされていることを確認します。

これで再度実行すると以下のように全件がJSON形式で返ってきます。

コメント

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