Невозможно получить значение из операции динамо-базы данных, используя async / await в узле js - PullRequest
0 голосов
/ 29 октября 2018

Недавно AWS обновил среду выполнения лямбды до Node js 8.10. Я создал лямбда-функцию, которая использует асинхронную / ожидающую операцию. То, как она работает, заключается в том, что, когда делается запись в таблицу DynamodB, в тему sns отправляется сообщение с первичным ключом таблицы как часть сообщения, которое вызывает другую лямбда-функцию. При выполнении второй лямбда-функции и запросе таблицы DynamodB с первичным ключом я не могу получить значение из await. При печати значения в журнале консоли возвращается неопределенное значение. Мне не нужно передавать какое-либо значение в ключ возврата, поэтому я не использую это, чтобы передать любое значение. Ниже приведен фрагмент кода.

let AWS = require("aws-sdk");
let docClient = new AWS.DynamoDB.DocumentClient();
exports.handler = async (event) => {
    // TODO implement
    let tableName = "vedablogs";
    let idvalue = event.Records[0].Sns.Message;
    let id = idvalue.toString();

    let params = {
                TableName: tableName,
                KeyConditionExpression: "#id = :idvalue",
                ExpressionAttributeNames: {
                    "#id": "id"
                },
                ExpressionAttributeValues: {
                    ":idvalue": id
                }
            };

     let queryParams = await docClient.query(params).promise();
     console.log('queryParams'+queryParams.Item);
     return;

};

1 Ответ

0 голосов
/ 29 октября 2018

Любой, кто сталкивается с этой проблемой, решает использовать Предметы вместо предмета. Вы можете сохранить значения журнала следующим образом.

 console.log("query params is>"+queryParams.Items);
  queryParams.Items.forEach(function(item) {
        console.log('items is'+JSON.stringify(item));
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...