从Lambda收到无效响应:无法识别的字段

时间:2020-07-02 17:51:07

标签: javascript lambda amazon-lex amazon-connect

我正在研究Amazon lex。当我向Amazon lex输入信息时,会出现以下错误

enter image description here

我在实现中添加了lambda函数,并且从lambda中我从MySQL数据库获取了客户信息

这是我的lambda函数

const mysql = require('mysql');
var pool  = mysql.createPool({ //  a connection pool is a cache of database connections maintained so that the connections can be reused when future requests to the database are required
   host: process.env.RDS_HOSTNAME,
   user: process.env.RDS_USERNAME,
   password: process.env.RDS_PASSWORD,
   port: process.env.RDS_PORT,
  database: process.env.RDS_DATABASE
});

  exports.handler = (event, context, callback) => {
        
  let MembershipNumber = event.currentIntent.slots.MembershipNumber;
  
  // allows for using callbacks as finish/error-handlers
  context.callbackWaitsForEmptyEventLoop = false;
pool.getConnection(function(err, connection) {
    if (err) throw err;
    let sql = "select * from Sales.CustomerTable where MembershipNumber= ? LIMIT 1";
    let field = [MembershipNumber];
    connection.query(sql,field, function (err, result, fields) {
    if (err) {
            console.log(err); // an error occurred
            context.fail(buildResponse(false));
        } 
        else {
            if (result.length === 1) {
                //console.log(data.Items[0].Arrival_city);
                var FirstName = result[0].FirstName;
                var LastName = result[0].LastName;
                var Address = result[0].Address;
                var PrimaryPhone = result[0].PrimaryPhone;
                var SecondaryPhone = result[0].SecondaryPhone;
                var Email = result[0].Email;
                var Type = result[0].Type;
                var MembershipNumber = result[0].MembershipNumber;
                var Pin = result[0].Pin;
                callback(null, {
                    "dialogAction": {
                    "type": "ConfirmIntent",
                    "fulfillmentState": "Fulfilled",
                    "message": {
                    "contentType": "PlainText",
                    "content": FirstName,LastName,Address,PrimaryPhone,SecondaryPhone,Email,Type,MembershipNumber,Pin
        }
    }
});
            } 
            else {
                console.log("Membership Number not found");
                callback(null, buildResponse(true, "none"));
            }
        }
    });
  });
};
function buildResponse(isSuccess, FirstName, LastName, Address, PrimaryPhone, SecondaryPhone, Email, Type, MembershipNumber, Pin) {
    if (isSuccess) {
        return { 
            FirstName: FirstName,
            LastName: LastName,
            Address: Address,
            PrimaryPhone: PrimaryPhone,
            SecondaryPhone: SecondaryPhone,
            Email:Email,
            Type:Type,
            MembershipNumber:MembershipNumber,
            Pin:Pin,
            lambdaResult: "success"
        };
    } 
    else {
        console.log("Lambda returned error to Connect");
        return { lambdaResult: "Error" };
    }
}

这是测试事件对象

{
  "messageVersion": "1.0",
  "invocationSource": "FulfillmentCodeHook",
  "userId": "user-1",
  "sessionAttributes": {},
  "bot": {
    "name": "Sales",
    "alias": "sales",
    "version": "$LATEST"
  },
  "outputDialogMode": "Text",
  "currentIntent": {
    "name": "iamamember",
    "slots": {
      "MembershipNumber": "78541258"
    },
    "confirmationStatus": "None"
  }
}

我想将此与我的联系流程整合在一起。我不知道这是什么错误。如果您认识的人帮助我。谢谢

0 个答案:

没有答案