【问题标题】:Deploy the skill as a web service (not with ngrok to tunnel the localhost)将技能部署为 Web 服务(不使用 ngrok 来隧道本地主机)
【发布时间】:2019-12-14 19:11:40
【问题描述】:

我正在尝试将技能服务部署为 Web 服务,而不是使用 lambda 函数,而是作为 HTTPS 端点(Alexa 需要 HTTPS 端点来转发请求)。 ASK-SDK-JAVA servlet 有助于实现相同的目的,但文档描述了有关 TOMCAT 和 NGROK 的本地使用。我部署了与 Heroku 文档中使用的相同的 .war,但请求没有被转发到端点。如何将服务托管为 HTTPS 端点?我可以使用.jar 还是只使用.war

我使用“SkillServlet”as shown here 制作了示例 HelloWorld 程序。

当我调用该技能时。 Alexa 抛出以下语音输出

There was a problem communicating with the requested skill.

(无法查询端点)

【问题讨论】:

    标签: java http https aws-lambda alexa-skills-kit


    【解决方案1】:

    我认为这是因为您没有遵守 Alexa 团队的规则 as mentioned here。他们有一套规则,比如验证 Alexa 请求,我认为他们这样做是出于安全和 100% 正常运行时间的原因。

    我不知道java-sdk,,但我也想在我的自定义端点上部署我的node-sdk 技能,我发现Alexa 规则非常复杂。所以我建议你坚持在 Lambda 上托管。

    【讨论】:

    • 是的,我能够以 Alexa 可读的格式手动生成响应的 JSON,但测试只是在我的本地机器上进行。我同意亚马逊方面的请求处理,例如时间戳检查和技能 ID 检查。在 java ask-sdk-servlet-support 中负责处理,但在 nodejs 中我不知道是否存在这种支持。我只想将 Java 中的 ask-sdk-servlet 与 Spring 链接到作为自定义 Web 服务托管。
    猜你喜欢
    • 1970-01-01
    • 2018-07-07
    • 2016-02-01
    • 2021-01-27
    • 2021-06-05
    • 2017-02-06
    • 2012-11-02
    • 1970-01-01
    • 2019-12-04
    相关资源
    最近更新 更多