微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

AWS Lambda不会从DynamoDB中提取数据并在AWS Lex上返回

如何解决AWS Lambda不会从DynamoDB中提取数据并在AWS Lex上返回

我正在尝试使用AWS Lambda函数从DynamoDb中提取显示数据,并将其显示在AWS Lex上。它在数据应放置的地方返回带有单词“ undefined”的if部分。该信息在DynamoDB数据库中。我主要使用AWS服务器并构建此无服务器Lex bot应用程序。

AWS代码

const AWS = require('aws-sdk');
const db = new AWS.DynamoDB.DocumentClient({region: 'us-east-1'});

exports.handler = async (event) => {
    // Todo implement
    const response = {
        statusCode: 200,body: JSON.stringify('Hello from Lambda!'),};
    return response;
};

function getExamSchedule(exam2,table){
    return new Promise(function(resolve){
        var info = 0;
        var params = {
            TableName: table,FilterExpression: "#key = :data",ExpressionAttributeNames: {
                "#key": "Resource",},ExpressionAttributeValues:{
                ":data": exam2
            }
        };
        db.scan(params,function(err,data){
            if(err){
                console.log("Error: " + err);
                info = 0;
            } else {
                console.log("Success",data);
                
                info = {"ClassID" :data.Items[0].ClassID,"ExamDate " :data.Items[0].ExamDate,"ExamEndTime:" :data.Items[0].ExamEndTime,"ExamLocation" :data.Items[0].ExamLocation,"ExamStartTime" :data.Items[0].ExamStartTime};
            }
            resolve(info);
        });
    });
}

这是可能发生问题的部分。

exports.handler = async (event,context,callback) => {
    var exam2 = event.currentIntent.slots.ClassID;
    var info = await getExamSchedule(exam2,"Final_Exams");
    var res;
    // if (info !== 0)
    if(info != null){
        res =`The exam information for ${exam2} is ${info.ClassID} Date: ${info.ExamDate} 
            End time:  ${info.ExamEndTime} Location: ${info.ExamLocation} Start time: ${info.ExamStartTime}`;
    } else {
        res = `The exam is not entered into our database,please look for another exam.`;
    }
    
    callback(null,{
        "dialogAction": {
            "type":"Close","fulfillmentState": "Fulfilled","message":{
                "contentType": "PlainText","content": res
            }
        }
    });
};

解决方法

您是否可以共享运行代码时遇到的一些日志和/或堆栈跟踪?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。