当前位置: 首页 > 知识库问答 >
问题:

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

公孙威
2023-03-14

我创建了一个简单的Lambda函数来调用一个网页,当我从函数页面测试它时,它可以正常工作,但是当试图创建一个调用这个函数的技能时,我最终得到了一个“远程endpoint无法html" target="_blank">调用,或者它返回的响应无效”错误

匿名函数

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:美国东部-1:052516835015:函数:CustomFunction

Alexa Skill(开发者门户)

然后我用一个简单的意图创造了一个技能:

{
 "intents": [
   {
 "intent": "CustomFunction"
   }
 ]
}

创造了这样一种说法:

CustomFunction execute my custom function

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

在测试中-

{
  "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"
}

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

无法调用远程终结点,或者它返回的响应无效。

有人知道为什么技能不能连接到功能上吗?

谢啦

共有3个答案

缑文栋
2023-03-14

这个错误信息非常广泛,可能意味着许多不同的问题。我收到了这个错误,在我的情况下,这是一个超时问题。你正在ping的网站需要多长时间才能回复?超时似乎没有被正确记录,请参阅我的原始问题:亚马逊Alexa Skill Kit(ASK)Lambda交互故障排除

那存
2023-03-14

上传. zip时,不要将文件夹压缩到. zip中。

相反,进入文件夹,选择package。json索引。js节点模块

牟飞沉
2023-03-14

Amazon Alexa开发者控制台中内置的服务模拟器存在已知问题。尝试复制模拟器生成的JSON,并将其粘贴到lambda函数的测试事件中。要访问lambda的测试事件,请首先找到蓝色的“测试”按钮。在该按钮旁边选择(操作下拉菜单)-

如果这不能解决问题,lambda的测试事件将返回完整的堆栈跟踪和错误代码。当每个错误都不是“无法调用远程endpoint,或者它返回的响应无效”时,故障排除就变得容易多了

{
  "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"
}
 类似资料:
  • 我正在使用dropwizard和jersey2 rest客户端,我得到 然而,当我打开日志记录时,我看到 我怎样才能反序列化这个响应,而不是只得到400? 我的代码看起来像 亚洲账户基本上是空的 我添加了apiVerson,时间戳和错误到亚洲帐户,但它仍然不工作。任何帮助都很感激。

  • 如果我在Wildfly中使用默认的安全域设置,我可以成功调用远程EJB。我访问此安全域根本没有检查任何用户凭据。在实现或使用检查数据库中用户名和密码的安全域后,我遇到了下面的异常。 我不知道我错过了什么。我希望这里有人能给我指出一个正确的方向。 例外情况: jboss-ejb3。xml: 独立。xml TestRemote。Java语言 谢谢,贝尔

  • 我需要远程调试我的应用程序,但由于以下错误,我无法这样做: 我有: null 下面是iptables的输出: 如何用8000端口修复此问题?或者也许我的主要问题还有其他原因?

  • 这三个函数的返回类型提示有什么不同吗? 他们都应该有< code>- 提问的动机是这个问题,这个很好的答案,以及我正在学习类型提示的事实。

  • 在我的服务中,我执行了一个超文本传输协议调用,并将响应返回为可观察的 我订阅了一个组件 这样做实际上是有效的;我可以在控制台中看到对象的转储 当我想从服务返回映射为json的响应时,出现了问题。 我想做他的 但在运行时,我得到了一个模糊的javascript错误(准确地说,这是来自Zone.js) 我已经尝试将返回类型从

  • 我目前正尝试在Node.js中使用Microsoft Graph实现对日历/用户的直接登录。 grant_type: client_id:{app_id} client_secret:{app_secret} 作用域: 并且我使用一个令牌。 使用授权承载和上述令牌打开->将返回代码状态200以及在步骤1中使用的用户帐户。