Размещение навыка в AWS
Платформа Amazon Web Services позволяет развернуть и проверить свой навык. Если вы не пользовались платформой раньше, вы можете воспользоваться бесплатным периодом.
Подготовка
Создайте учетную запись AWS, если у вас ее еще нет, и дождитесь активации сервиса (может занимать до 24 часов).
Создание веб-приложения
Запустить свое приложение можно при помощи AWS Lambda или Elastic Beanstalk.
Способ с Elastic Beanstalk длиннее, поскольку требует настройки связи по протоколу HTTPS. Для этого потребуется действительный выданный сертификат.
-
Войдите в Консоль управления AWS.
-
При помощи поиска найдите раздел Lambda.
-
В верхнем правом углу нажмите Create function.
-
Заполните поля:
- Function name — имя функции.
- Runtime — среда, в которой будет выполняться функция. Поддерживаются Node.js, Python и Ruby.
- Architecture — архитектура, на которой будет выполняться функция. Выберите нужную опцию: x86_64 или arm64.
-
Откройте вкладку Change default execution role.
-
Выберите опцию Create a new role with basic Lambda permissions.
-
откройте вкладку Advanced settings.
-
Выберите опцию Enable function URL -raw.
-
В разделе Auth type выберите опцию NONE.
-
Нажмите Create function.
-
В открывшемся окне с описанием функции на вкладке Functions overview найдите Function URL — он потребуется для запуска навыка в консоли разработчика Диалогов.
-
В разделе Code source разместите исходный код вашего приложения. В некоторых средах выполнения изменения в код можно вносить прямо в этом разделе. Чтобы изменения вступили в силу, нажмите кнопку Deploy.
-
Нажмите Test, чтобы начать тестирование приложения.
-
Войдите в Консоль управления AWS.
-
При помощи поиска найдите раздел Elastic Beanstalk и создайте окружение:
- В верхнем правом углу нажмите Create a new environment.
- В окне Select environment tier выберите опцию Web server environment и нажмите Select.
- В поле Application name введите название приложения.
- В разделе Platform выберите платформу для вашего приложения, а также его ветвь и версию.
- В разделе Application code выберите опцию Upload your code.
- Нажмите Chose file и загрузите архив с исходным кодом приложения.
- Нажмите Create environment.
-
Найдите с помощью поиска страницу сервиса Route 53 и перейдите на нее.
-
Создайте ресурсную запись типа А. Запись должна связывать ваше доменное имя и созданное окружение Elastic Beanstalk. Подробнее о создании такой записи читайте в документации AWS.
-
С помощью поиска найдите раздел EC2.
-
В подразделе Load Balancers выберите только что созданный балансировщик и перейдите в его свойство Listeners.
-
Нажмите Add listener и измените следующие значения:
- Protocol — протокол подключения. Выберите значение HTTPS.
- Port — порт сети. Введите значение
443
. - Default action Forward to... — целевая группа из выпадающего списка.
- Security policy — наиболее свежая политика безопасности.
- Default SSL certificate — действительный сертификат для использованного в ресурсной записи доменного имени.
Для регистрации доменных имен воспользуйтесь сервисом Route 53. Для получения сертификата используйте сервис AWS Certificate Manager.
-
Нажмите Add listener еще раз и вернитесь в свойства балансировщика.
-
Обратите внимание на желтый треугольник справа от HTTPS: 443 — это предупреждение о необходимости внести изменения в группу безопасности. Нажмите на него и перейдите к списку групп.
- Для каждой группы по очереди выберите вкладку Inbound rules и нажмите кнопку Edit inbound rules.
- Добавьте правило для HTTPS, указывая в поле Source то же значение, что и для HTTP.
-
В новой вкладке браузера введите доменное имя, которое вы использовали в ресурсной записи, и перейдите по ссылке. На странице будет указан ответ навыка на HTTP-запрос GET.
Добавление Webhook URL
- Перейдите в консоль разработчика навыка.
- Откройте вкладку Настройки.
- В блоке Backend в поле Webhook URL укажите URL приложения.
- Внизу страницы нажмите кнопку Сохранить.
- Проверьте работу навыка на вкладке Тестирование. Подробнее см. раздел Тестирование навыка.