我创建了一个简单的Lambda函数来调用网页,当我从函数页面进行测试时,此工作正常,但尝试创建一个技能来调用这个函数,我最终得到一个“远程端点不能被调用,或者它返回的响应是无效的。”错误。Alexa技能ARN - 无法调用远程端点,或者返回的响应无效
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);
}
测试事件的代码如下所示:
{
"url": "http://mywebsite.co.uk"
}
和我添加了一个触发了 “Alexa的技能套装”。
该函数的ARN作为显示:
arn:aws:lambda:us-east-1:052516835015:function:CustomFunction
Alexa的技能(开发者门户网站)
我然后创建一个技能用一个简单的意图:
{
"intents": [
{
"intent": "CustomFunction"
}
]
}
并创建了一个话语为:
CustomFunction execute my custom function
在我的技能的配置部分中,我选择了“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"
}
但是当我运行测试,我得到出现以下错误:
The remote endpoint could not be called, or the response it returned was invalid.
有没有人有任何想法,为什么技能无法连接到该功能?
谢谢
如果你看一下日志中的CloudWatch您拉姆达 - 它被调用 – Tom