0

我有以下试图扫描表的 Lambda。故意表不存在,因为我想捕获错误并处理它。但是,它似乎只是被忽略了。
我怎样才能看到错误(我认为应该有错误)
Lambda:

const AWS = require("aws-sdk");
let response;
const dyDocClient = new AWS.DynamoDB.DocumentClient();

exports.lambdaHandler = async (event, context) => {
    
    const params = {
        TableName: "tttttt"
    };
    console.log('The table name is ',params.TableName);

    try {

        dyDocClient.scan(params, (err, data)=>{
            
            if (err) {
                console.log("Unable to scan the table. Error JSON:", JSON.stringify(err));
            } else {
                console.log("Doing baba dance!");
            }
            return 2;

        });

        response = {
            'statusCode': 200,
            'body': JSON.stringify({
                message: 'received'
            })
        }

    } catch (err) {
        console.log('Error was captured');
        console.error(JSON.stringify(err));
        return err;
    }

    return response
};

我在 cloudwatch 日志中看到的内容:

2021-09-07T12:20:25.972-04:00 开始请求 ID:d7858877-68d5-4a68-ab0b-0d14efd61712 版本:$LATEST 2021-09-07T12:20:25.975-04:00 2021-09-07T16:20: 25.975Z d7858877-68d5-4a68-ab0b-0d14efd61712 INFO表名为 tttttt
2021-09-07T12:20:26.498-04:00 END RequestId:
d7858877-68d5-4a68-ab0b-0d14efd617T122:20-02 26.498-04:00 报告请求 ID:d7858877-68d5-4a68-ab0b-0d14efd61712 持续时间:524.08 毫秒计费持续
时间:525 毫秒内存大小:128 MB 使用的最大内存:90 MB 初始化持续时间:592.69 毫秒

不确定这是否相关,但我通过 api gateway 调用 lambda

4

1 回答 1

1

这有点异步问题;以下应该可以工作,但使用 async/await

const AWS = require("aws-sdk");
const dyDocClient = new AWS.DynamoDB.DocumentClient();

exports.lambdaHandler = async (event, context) => {

  const params = {
    TableName: "tttttt"
  };
  console.log('The table name is ', params.TableName);

  try {

    let data = await dyDocClient.scan(params).promise().catch(err => {
      console.log("Unable to scan the table. Error JSON:", JSON.stringify(err));
      throw err
    })
    console.log("Doing baba dance!");
    return {
      'statusCode': 200,
      'body': JSON.stringify({
        message: 'received'
      })
    }
  } catch (err) {
    console.log('Error was captured');
    console.error(JSON.stringify(err));
    return err;
  }
};
于 2021-09-07T17:20:49.723 回答