Как получить доступ к API REST, размещенным локально на Alexa - PullRequest
0 голосов
/ 04 мая 2018

Я занимаюсь разработкой пользовательского навыка Alexa, и у меня есть требование, чтобы Alexa получал доступ к API REST, которые размещены локально на http://localhost:8080? Есть идеи, как это сделать?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 06 мая 2018

Здесь ссылка на довольно хорошую статью о том, как работают IP-адреса.

Разрешение доступа к устройству, находящемуся в вашей локальной сети (например, к портативному компьютеру или Raspberry Pi, подключенному к вашему Wi-Fi), из-за пределов вашей локальной сети (например, из службы, работающей в AWS), потребует сопоставления 2 отдельных IP-адресов. :

  1. IP-адрес, назначенный вашему маршрутизатору (ваш публичный IP)
  2. Частные IP-адреса, назначенные вашим маршрутизатором вашим устройствам (ноутбукам, iPhone, RPi и т. Д.).

У вас есть несколько вариантов, позволяющих получить доступ к IP-адресу вашего маршрутизатора (# 1) из-за пределов вашей локальной сети:

а. Платите своему интернет-провайдеру за предоставление вам статического IP-адреса б. Используйте службу динамического DNS, такую ​​как DuckDNS или No-IP .

Если у вас есть фиксированный общедоступный IP-адрес, который можно использовать для доступа к маршрутизатору, вам потребуется сопоставить порт на маршрутизаторе (# 1) с IP-адресом устройства в локальной сети (# 2). Обычно это называется переадресацией портов. Большинство маршрутизаторов будут поддерживать настройку этого. По сути, вы говорите своему маршрутизатору "когда вы получаете сообщение: передайте его на мой ноутбук:"

Ваш локальный частный IP-адрес обычно имеет значение IP, например 192.168.0.23 (где 23 может быть любым от 1 до 254).

Внешний IP-адрес будет начинаться с чего-то, отличного от 192. См. Первую ссылку выше относительно диапазонов IP-адресов.

Для получения дополнительной информации о том, как работают IP-адреса и переадресация портов, можно зайти в Google «Переадресация портов» и «Публичный IP-адрес», но, надеюсь, это поможет вам начать работу. Сначала это может показаться немного сложным, но если я могу это понять, то каждый может: -)

0 голосов
/ 04 мая 2018

Если вы действительно хотите это сделать, и я предполагаю, что вы размещаете этот навык в AWS Lambda, это потребует немало работы.

Ваши локальные конечные точки должны быть доступны извне вашей сети, что требует переадресации портов вашего маршрутизатора на вашу машину, где размещены конечные точки. Это необходимо настроить в вашем роутере.

Более простым способом является развертывание вашего проекта, содержащего API, на что-то вроде Heroku, что можно легко сделать. Они дают вам домен и делают конечные точки доступными для Lambda. Это должно быть возможно в пределах их бесплатного уровня.

...