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





Если вы действительно хотите это сделать, и я предполагаю, что вы размещаете навыки на AWS Lambda, это потребует довольно много работы.
Ваши локальные конечные точки должны быть доступны извне вашей сети, что требует переадресации портов в вашем маршрутизаторе на ваш компьютер, на котором размещены конечные точки. Это необходимо настроить в вашем маршрутизаторе.
Более простой способ - развернуть ваш проект, содержащий API, в чем-то вроде Heroku, что можно легко сделать. Они предоставляют вам домен и делают конечные точки доступными для Lambda. Это должно быть возможно в пределах их бесплатного уровня.
Благодарность! Мое локальное приложение размещено и настроено для WildFly (Jboss) и использует PostgreSQL в качестве базы данных. Потребует ли хостинг на Heroku изменения этих параметров?
@Sambhav Я не очень знаком с этим, но уверен, что они вас охватили, у них масса настроек.
@Sambhav рассмотрите вариант размещения вашего приложения на AWS. Вы можете настроить API-шлюз для получения запросов и пересылки на конечную точку Lambda или EC2, где находится ваше приложение.
Вот ссылка на сайт к довольно хорошей статье о том, как работают IP-адреса.
Разрешение доступа к устройству, находящемуся в вашей локальной сети (например, портативному компьютеру или Raspberry Pi, подключенному к вашему Wi-Fi), извне вашей локальной сети (например, из службы, работающей на AWS), потребует сопоставления двух отдельных IP-адресов:
У вас есть несколько вариантов разрешения доступа к IP-адресу вашего маршрутизатора (# 1) извне вашей локальной сети:
а. Платите своему интернет-провайдеру, чтобы он предоставил вам статический IP-адрес. б. Используйте службу динамического DNS, такую как DuckDNS или Нет-IP.
Если у вас есть фиксированный общедоступный IP-адрес, который можно использовать для доступа к вашему маршрутизатору, вам нужно будет сопоставить порт на вашем маршрутизаторе (№1) с IP-адресом устройства в вашей локальной сети (№2). Обычно это называется «перенаправление портов». Большинство маршрутизаторов поддерживают такую настройку. Фактически, вы сообщаете своему маршрутизатору: «Когда вы получите сообщение: передать его на мой ноутбук:»
Ваш локальный частный IP-адрес обычно имеет значение IP, например 192.168.0.23 (где 23 может быть любым от 1 до 254).
Внешний IP-адрес будет начинаться не с 192. См. Первую ссылку выше относительно диапазонов IP-адресов.
Вы можете найти в Google "переадресацию портов" и "общедоступный IP-адрес" для получения дополнительной информации о том, как работают IP-адреса и переадресация портов, но, надеюсь, это поможет вам начать работу. Сначала это может показаться немного сложным, но если я смогу это понять, то сможет любой :-)
вы уже пробовали ngrok? ngrok может сделать ваше локальное приложение доступным для Интернета всего за несколько шагов.