Alexa Skill ARN - 无法调用远程端点,或者它返回的响应无效

ca8*_*msm 8 amazon-web-services aws-lambda alexa-skill alexa-skills-kit

我已经创建了一个简单的Lambda函数来调用一个网页,当我从函数页面测试它时工作正常但是当试图创建一个技能来调用这个函数时我最终得到了一个"无法调用远程端点,或者它返回的回复无效." 错误.

Lambda函数

var http = require('http');

exports.handler = function(event, context) {
  console.log('start request to ' + event.url)
  http.get(event.url, function(res) {
    console.log("Got response: " + res.statusCode);
    context.succeed();
  }).on('error', function(e) {
    console.log("Got error: " + e.message);
    context.done(null, 'FAILURE');
  });

  console.log('end request to ' + event.url);
}
Run Code Online (Sandbox Code Playgroud)

测试事件代码如下所示:

{
  "url": "http://mywebsite.co.uk"
}
Run Code Online (Sandbox Code Playgroud)

我添加了"Alexa Skills Kit"的触发器.

此功能的ARN显示为:

阿尔恩:AWS:波长:美东1:052516835015:功能:CustomFunction

Alexa Skill(开发者门户网站)

然后我创建了一个简单的Intent技能:

{
 "intents": [
   {
 "intent": "CustomFunction"
   }
 ]
}
Run Code Online (Sandbox Code Playgroud)

并创造了一个话语:

CustomFunction execute my custom function
Run Code Online (Sandbox Code Playgroud)

在我的技术配置部分,我选择了"AWS Lambda ARN(亚马逊资源名称)"选项,并将ARN输入到北美的框中.

在测试 - >服务模拟器部分,我添加了"执行我的自定义函数"作为文本,这将更改Lambda请求显示:

{
  "session": {
"sessionId": "SessionId.a3e8aee0-acae-4de5-85df-XXXXXXXXX",
"application": {
  "applicationId": "amzn1.ask.skill.XXXXXXXXX"
},
"attributes": {},
"user": {
  "userId": "amzn1.ask.account.XXXXXXXXX"
},
"new": true
  },
  "request": {
"type": "IntentRequest",
"requestId": "EdwRequestId.445267bd-2b4a-45ef-8566-XXXXXXXXX",
"locale": "en-GB",
"timestamp": "2016-11-27T22:54:07Z",
"intent": {
  "name": "RunWOL",
  "slots": {}
}
  },
  "version": "1.0"
}
Run Code Online (Sandbox Code Playgroud)

但是当我运行测试时,我收到以下错误:

无法调用远程端点,或者它返回的响应无效.

有没有人知道为什么技能无法连接到该功能?

谢谢

Jos*_*lls 0

此错误消息非常广泛,可能意味着许多不同的问题。我收到此错误,就我而言,这是一个超时问题。您 ping 的那个网站需要多长时间才能响应?超时似乎没有正确记录,请在此处查看我的原始问题:Troubleshooting Amazon's Alexa Skill Kit (ASK) Lambda interaction