我正在开发一个自定义的Alexa技能,并且有一个要求,我希望Alexa访问本地托管在 http://localhost:8080 上的REST API?知道怎么做吗?
谢谢!
如果您真的想这样做,并且我假设您将技能托管在 AWS Lambda 上,这将涉及相当多的工作。
您的本地端点需要可从网络外部访问,这需要将路由器中的端口转发到托管端点的计算机。这需要在路由器中进行配置。
一种更简单的方法是将包含 API 的项目部署到 Heroku 之类的东西,这很容易完成。它们为您提供了一个域,并使 Lambda 可以访问终端节点。这应该可以在他们的免费套餐内实现。
这里有一篇关于IP地址如何工作的好文章的链接。
允许从本地网络外部(例如,从 AWS 上运行的服务(访问位于本地网络上的设备(例如,连接到 wifi 的笔记本电脑或树莓派(将涉及映射 2 个单独的 IP 地址:
- 分配给路由器的 IP 地址(您的公共 IP(
- 路由器分配给设备(笔记本电脑、iPhone、RPi 等(的专用 IP 地址。
您有几个选项可以允许从本地网络外部访问路由器的 IP :
a. 向您的互联网提供商付费,为您提供静态 IP 地址 b.使用动态 DNS 服务,例如 DuckDNS 或 No-IP。
一旦您拥有可用于访问路由器的固定公共 IP,您需要将路由器上的端口 映射到本地网络上的设备 IP 。这通常称为"端口转发"。大多数路由器都支持配置此项。实际上,您告诉路由器"当您收到一条消息时:将其传递给我的笔记本电脑:">
您的本地专用 IP 地址通常具有类似于 192.168.0.23 的 IP 值(其中 23 可以是 1 到 254 之间的任何值(。
外部 IP 将以 192 以外的内容开头。有关 IP 范围,请参阅上面的第一个链接。
您可以谷歌"端口转发"和"公共IP",了解有关IP地址和端口转发如何工作的更多信息,但希望这将有助于您入门。乍一看似乎有点复杂,但如果我能理解它,那么任何人都可以:-(