单击测试按钮时,AWS Lambda函数将触发两次

我正在使用chrome浏览器,当我单击屏幕右上角的“测试”按钮时,lambda函数似乎会触发1-3次,我无法弄清楚为什么会发生这种情况。

我尝试将参数直接放入dynamoDB.get调用中,并进行了一段时间的搜索,并尝试查找存在类似问题的人员。我发现有一些接近,但没有一个谈论使用内置测试按钮时多次触发单个函数。我也尝试过使通话异步并等待它,但是都无济于事。

AAAAAABBBBBBBSDSDDSDSDCCCCHEY

我希望该函数仅调用一次,但是更经常地在“执行结果”区域中将相同的内容打印2-3次

// Import libraries
const aws = require('aws-sdk');
const dynamoDB = new aws.DynamoDB.DocumentClient();

aws.config.update({
    region: "us-east-1"
});

// Get Document
exports.handler = async (event,context) => {
    let params = {
       TableName: event.TableName,Key: {
            uuid: event.uuid
        } 
    };  

    return await dynamoDB.get(params,function(error,data){
        if(error){
            console.error("Error",error);
        }
        else{
            console.log("Data: ",data);
        }
    }).promise();
};
caoyue7758521 回答:单击测试按钮时,AWS Lambda函数将触发两次

您要提供一个回调方法您是在同一API调用中请求一个Promise。

您不应该两者都做。我建议删除回调,例如:

exports.handler = async (event,context) => {
    const params = {
       TableName: event.TableName,Key: {
            uuid: event.uuid
        } 
    };

    try {
        const data = await dynamoDB.get(params).promise();
        console.log("Data: ",data);
    } catch(error) {
        console.error("Error:",error);
    }
};
本文链接:https://www.f2er.com/3155423.html

大家都在问