如何访问在Alexa上本地托管的REST API

时间:2018-05-04 18:23:39

标签: rest web-services aws-lambda alexa alexa-skills-kit

我正在开发一个自定义的Alexa技能并且有一个要求我希望Alexa访问http://localhost:8080本地托管的REST API?知道怎么做吗?

谢谢!

2 个答案:

答案 0 :(得分:2)

如果你真的想这样做,而且我假设你在AWS Lambda上主持这项技能,那么它将涉及相当多的工作。

您的本地端点需要可以从网络外部访问,这需要将路由器中的端口转发到托管端点的计算机。这需要在路由器中配置。

更简单的方法是将包含API的项目部署到类似Heroku的项目,这可以轻松完成。它们为您提供了一个域,并使Lambda可以访问端点。这应该可以在他们的免费等级内完成。

答案 1 :(得分:1)

下面' link一篇关于IP地址如何工作的非常好的文章。

允许从本地网络外部(例如,从AWS上运行的服务)访问位于本地网络上的设备(例如,连接到您的wifi的笔记本电脑或Raspberry Pi)将涉及映射2个单独的IP地址:

  1. 分配给路由器的IP地址(您的公共IP)
  2. 路由器为您的设备(笔记本电脑,iPhone,RPi等)分配的私有IP地址。
  3. 您可以通过几种方式从本地网络外部访问路由器的IP(#1):

    一个。支付您的互联网服务提供商为您提供静态IP地址  湾使用动态DNS服务,例如DuckDNSNo-IP

    一旦您拥有可用于访问路由器的固定公共IP,您就需要将路由器(#1)上的端口映射到本地网络上的设备IP(#2)。这通常被称为"端口转发"。大多数路由器都支持配置它。实际上,你告诉你的路由器"当你收到消息时:将它传递给我的笔记本电脑:"

    您的本地私有IP地址通常具有类似于192.168.0.23的IP值(其中23可以是1到254之间的任何值)。

    外部IP将以192以外的其他内容开始。请参阅上面关于IP范围的第一个链接。

    你可以google"端口转发"和#34;公共知识产权"有关IP地址和端口转发如何工作的更多信息,但希望这将有助于您入门。起初看起来有点复杂,但如果我能理解它,那么任何人都可以: - )