Функция DynamoDB Scan Lambda возвращает HTTP-запрос или что-то, чего я не понимаю, но не список элементов - PullRequest
0 голосов
/ 26 апреля 2020

Я развернул функцию Lambda, которая должна получить список элементов с функцией scan(params, cb). В консоли я вижу что-то другое, не возвращаемый список, а что-то похожее на тело http-ответа или ответ?

Не могли бы вы объяснить, как правильно составить список и что я получу?


exports.handler = async (event, context, callback) => {
    console.log('function started')
    let params = {
        TableName: "documents"
    }

    console.log('params get')
    let respond = await db.scan(params, (err, data) => {
        console.log('scan started')
        if (err) console.log(err, err.stack);
        else {
            console.log('else started')

           return data
        }
    })
    console.log('Respons IS: ')
    console.log(respond)
};

Ответ - огромный огромный список чего-то: enter image description here

1 Ответ

1 голос
/ 26 апреля 2020

Вы смешиваете обратные вызовы и асинхронная / ожидающая функция ES6.

Я советую вам использовать только последнюю в этом случае.

Вот как это будет выглядеть:

const aws = require('aws-sdk');

const db = new aws.DynamoDB.DocumentClient();

exports.handler = async (event, context) => {
    console.log('function started');
    const params = {
        TableName: "documents"
    };

    console.log('params get');
    const respond = await db.scan(params).promise();
    console.log('Respons IS: ');
    console.log(respond);

    return ...
};
...