首页 > 解决方案 > DynamoDB Scan Lambda 函数返回 HTTP 请求或我不理解的内容,但不是项目列表

问题描述

我已经部署了一个 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)
};

响应是一个巨大的巨大的东西列表: 在此处输入图像描述

标签: aws-lambdaamazon-dynamodbapi-gateway

解决方案


您正在混合回调异步/等待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 ...
};

推荐阅读