質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

1回答

1945閲覧

AWSのlambdaでqueryのキーを指定してdynamodbから値を取得したいのですがどのようにすればできるのでしょうか?

退会済みユーザー

退会済みユーザー

総合スコア0

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2016/10/15 06:23

編集2016/10/16 07:57

awsのlambdaで、dynamodbからkeyを指定して値を取得したいのですが、

Process exited before completing request

のようなエラーが出てしまいます。
lambdaに追加記述したコードが下記になり、下記のコードを追加する前までは正常に値を取得できておりました。
awsのサイトを真似して書いたはずなのですが、どこが間違えているのでしょうか??
よろしくお願いいたします。

var aws = require("aws-sdk"); var db = new aws.DynamoDB(); var headers = []; var ret = []; exports.handler = function(event, context) { var query = { TableName: 'klog', // 追加記述start (ym:201610を取得したい) KeyConditionExpression : "#k = :val", ExpressionAttributeNames : {"#k" : "ym"}, ExpressionAttributeValues : {":val" : 201610} }; var scanDynamoDB = function(query) { db.scan(query, function(err, data) { if (!err) { // 出力 printout(data.Items); // 繰り返し取得 if (data.LastEvaluatedKey) { query.ExclusiveStartKey = data.LastEvaluatedKey; scanDynamoDB(query); }else{ context.succeed(ret); } } else console.dir(err); }); }; // クエリ実行 scanDynamoDB(query); function printout(items) { var headersMap = {}; var values; var header; var value; if (headers.length === 0) { if (items.length > 0) { for (var i = 0; i < items.length; i++) { for (var key in items[i]) { headersMap[key] = true; } } } for (var key2 in headersMap) { headers.push(key2); } } for (var index in items) { values = []; for (i = 0; i < headers.length; i++) { value = ""; header = headers[i]; if (items[index].hasOwnProperty(header)) { if (items[index][header].N) { value = items[index][header].N; } else if (items[index][header].S) { value = items[index][header].S; } } values.push(value); } ret.push(values); } } };

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

配列の階層を指定することで取得可能

投稿2016/10/17 08:39

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問