首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Amazon / API网关/ Amazon错误:已处理

Amazon / API网关/ Amazon错误:已处理
EN

Stack Overflow用户
提问于 2020-01-26 05:45:43
回答 1查看 336关注 0票数 1

我创建了一个API网关,它链接到我的Amazon。它过去曾经工作过,但由于某种原因,它现在显示了这个错误消息。当我在Lex中的“”特性中测试它时,机器人就可以工作了。

此错误发生在我将新函数设置为“Lambda初始化和验证”之后。

错误消息:

代码语言:javascript
复制
START RequestId: e18b78ef-3177-4e2f-999a-33cd48258a60 Version: $LATEST
2020-01-26T05:37:01.003Z    e18b78ef-3177-4e2f-999a-33cd48258a60    ERROR   Invoke Error    {"errorType":"Error","errorMessage":"handled","stack":["Error: handled","    at _homogeneousError (/var/runtime/CallbackContext.js:13:12)","    at postError (/var/runtime/CallbackContext.js:30:54)","    at done (/var/runtime/CallbackContext.js:57:7)","    at fail (/var/runtime/CallbackContext.js:67:7)","    at /var/runtime/CallbackContext.js:105:16","    at processTicksAndRejections (internal/process/task_queues.js:93:5)"]}END RequestId: e18b78ef-3177-4e2f-999a-33cd48258a60
REPORT RequestId: e18b78ef-3177-4e2f-999a-33cd48258a60  Duration: 579.06 ms Billed Duration: 600 ms Memory Size: 128 MB Max Memory Used: 93 MB  

API:

代码语言:javascript
复制
var AWS = require('aws-sdk');
AWS.config.update({region: 'us-east-1'});

var lexruntime = new AWS.LexRuntime();

function main(event) {
  var params = {
    botAlias: 'myBot',
    botName: 'myBot',
    inputText: event.body.inputText, 
    userId: 'myUserId'

  };
  return new Promise((resolve, reject) => {
    lexruntime.postText(params, function(err, data) {
      if (err) { 
        var err2 = err.errorMessage
        reject(err2)
      }
      else {     
        resolve({data})
      }
    });
  });
}

exports.handler = main;

我在错误消息出现之前创建的新函数:

代码语言:javascript
复制
'use strict';

function close(sessionAttributes, intentName, slots, slotToElicit, message) {
    return {
        sessionAttributes,
        dialogAction: {
            type: 'ElicitSlot',
            intentName: intentName,
            slots,
            slotToElicit,
            message,
        },
    };
}

function delegate(sessionAttributes, slots){
    return { 
        sessionAttributes: sessionAttributes,
        dialogAction: {
            type: "Delegate",
            slots: slots
        }    
    };
}

function dispatch(intentRequest, callback) {
    const sessionAttributes = intentRequest.sessionAttributes;
    if(!sessionAttributes.userStatus){
        var param1 = {
            Email: null
        };
        intentRequest.currentIntent.slots = param1;
        callback(close(sessionAttributes, 'Verify', intentRequest.currentIntent.slots, 'Email', { "contentType": "PlainText", "content": "Please enter your email"}));
    }
    else {
        callback(delegate(sessionAttributes, intentRequest.currentIntent.slots));
    }
}

exports.handler = (event, context, callback) => {
    try {
        dispatch(event,
            (response) => {
                callback(null, response);
            });
    } catch (err) {
        callback(err);
    }
};

错误的含义是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-26 10:22:39

我发现了问题:

固定:

代码语言:javascript
复制
function dispatch(intentRequest, callback) {
    var sessionAttributes = intentRequest.sessionAttributes;
    if(sessionAttributes){
        if(sessionAttributes.userStatus){
            callback(delegate(sessionAttributes, intentRequest.currentIntent.slots));
        }
    }
    else {
        var param1 = {
            Email: null
        };
        intentRequest.currentIntent.slots = param1;
        callback(close(sessionAttributes, 'Verify', intentRequest.currentIntent.slots, 'Email'));
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59915891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档