【问题标题】:Simple Lambda for Alexa用于 Alexa 的简单 Lambda
【发布时间】:2018-08-20 13:42:51
【问题描述】:

我正在尝试做一些相当简单的事情,或者至少我认为它会很简单。

我希望 Alexa 使用我从头开始创建的 Lambda。我希望能够根据日期设置某些操作。我从 12 月 24 日开始,因为这很容易。我正在尝试将代码设置为是否是 12 月 24 日并且在 2100 年或之后,然后执行此操作或执行此操作。

exports.handler = (event, context, callback) => {
// TODO implement
var dateTime = new Date();
var day = dateTime.getDate();
var mon = dateTime.getMonth();
var hour = dateTime.getHour();
var answer = "";

if(day == 24 && month == 11 && hour >= 20) {
    answer = 'working';
    console.log(answer);
} else {
    answer = 'not working';
    console.log(answer);
}

callback(answer, 'Hello from Lambda');
};

我不是 Node 专家,不想运行一百万次测试,但我收到了这个错误:

{
  "errorMessage": "RequestId: ff577333-cb51-11e7-8d87-6d7ffdfe6f08 Process exited before completing request"
}

我的代码是错误的还是我遗漏了什么?这是我考虑使用的另一个版本:

exports.handler = (event, context, callback) => {
// TODO implement
var dateTime = new Date();
var day = dateTime.getDate();
var mon = dateTime.getMonth();
var hour = dateTime.getHour();
var answer = "";

if(month == 11) {
    if(day == 24) {
        if(hour >= 20) {
            answer = 'working';
    console.log(answer);
        }
    }
} else {
    answer = 'not working';
    console.log(answer);
}

callback(answer, 'Hello from Lambda');
}; 

这是我正在使用的测试事件:

{
   "key3": "11, 9, 21",
   "key2": "12,24, 22",
   "key1": "5, 5, 5"
}

也许我使用了错误的测试方式。希望得到一些指导。

提前感谢大家。

【问题讨论】:

  • 在您的callback 中,第一个参数用于error,第二个参数用于response。您正在发送对第一个参数的响应,该参数被解释为错误。

标签: node.js aws-lambda alexa


【解决方案1】:

首先,您的回复格式不适用于 Alexa 技能。另外,正如@TomG103 在他的评论中提到的,你的回调的第一个参数应该是空的。

我制作了一个视频,将向您展示如何创建一个简单的 Alexa 技能,该技能应该很容易让您适应您正在尝试做的事情。

这是视频的链接。 https://youtu.be/UlEhXDOIPvU

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 2018-11-18
    • 2016-12-02
    • 2017-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-09
    • 2023-04-10
    • 2018-06-09
    相关资源
    最近更新 更多