【问题标题】:AWS Lambda 'Process exited before completing request'AWS Lambda“在完成请求之前退出进程”
【发布时间】:2018-03-25 00:31:22
【问题描述】:

我一直在努力学习为 Amazon Echo 制作技能。我成功地制作了一个超级简单的,它实际上只是用你好来回应。

第二次尝试确定我所学到的知识,我想更冒险一点,让 Alexa 提供来自 Array 的随机 GoT 报价。一般来说,我对编码相当陌生,主要是从事网络工作。我尝试通过不同的方式搜索了很长一段时间,但找不到任何有用的东西。

在 Lambda 中进行测试时,我在日志输出中收到错误“进程在完成请求之前退出”我还可以看到“Alexa 未在 export.handler 中定义”,我一直在努力解决这个问题,所以真的希望有人能帮忙。很抱歉这件事啰嗦了很多。

下面是我的代码:

"use strict";

var alexa = require('alexa-sdk');

// QUOTES ARRAY
var quotes = [
        'A mind needs books as a sword needs a whetstone, if it is to keep its edge',
        'Never forget what you are, for surely the world will not',
        'I wont be knitting by the fire while I have men fight for me'
    ];


// HANDLERS
var handlers = {
    getThatQuote: function() {
        var quoteIndex = Math.floor(Math.random() * quotes.length);
        var randomQuote = quotes[quoteIndex];
        return randomQuote;
    },

    LaunchRequest: function() {
        this.emit(":tell", "Welcome to Game of Quotes");
    },
    QuoteGet: function() {
        this.emit(":tell", "Here is your quote" + this.getThatQuote());
    },
};

exports.handler = function (event, context) {
    const alexa = Alexa.handler(event, context);
    alexa.registerHandlers(handlers);
    alexa.execute();
};

【问题讨论】:

  • var alexa = require('alexa-sdk') 与后面尝试使用 Alexa SDK 的代码不兼容(通过 Alexa.handler(event, context))。使用相同的 Alexa 拼写。

标签: amazon-web-services aws-lambda alexa amazon-echo


【解决方案1】:

改变

var alexa = require('alexa-sdk');

var Alexa = require('alexa-sdk');

在此更改之前,您还覆盖了小写的alexa 变量。我建议为您的 javascript 代码使用 linter,因为这会在使用前发现使用未定义变量等问题。

【讨论】:

  • 老实说,非常感谢你,我真的应该明白这一点,你有我永远的感激之情!也谢谢顶!
猜你喜欢
  • 1970-01-01
  • 2015-08-03
  • 1970-01-01
  • 2017-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多