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形式で返ってきます。
KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
コメント