Рубрики
Без рубрики

Creando un custom skill para Alexa (III): Навыки на стороне сервера en AWS Lambda y Java 8

En el интерьер прошлое продолжение cómo crees el мастерство и су модель взаимодействия usandola … С тегами alexa, aws, java, alexa skills.

Ru el interior past продолжение cómo crear el skill y su модель взаимодействия с консолью разработчика Alexa. С этой частью у нас есть встроенный интерфейс голос, с которым пользователь будет взаимодействовать. Теперь нам нужно подключить эту “клиентскую” часть к конечной точке, которая будет иметь знания, необходимые для обработки запросов, которые приходят к нам. Это то, что мы увидим в этом посте.

AWS Лямбда

До сих пор я много слышал о serverless и что-то читал, но ничего не играл. Эста эра возможностей совершенна, я не могу использовать навыки Alexa для интеграции в мир маравильяс без AWS Lambda . Вы можете выбрать собственный веб-сервис по HTTP, но я хотел что-то простое и, кстати, узнать что-то об этом от serverless.

Чтобы настроить конечную точку skill с консоли, сначала необходимо создать лямбду. О AWS Lambda есть много//документации//, потому что это ничего нового и используется для многих других вещей, но я, не читая слишком много, смог создать то, что необходимо для skill. Кроме того, с бесплатной опцией у нас более чем достаточно для того, что мы хотим.

Я рекомендую несколько ресурсов:

Я собираюсь повторить некоторые вещи с захватами и без особых деталей, чтобы показать все шаги.

Базовая конфигурация лямбда

Первое, что мы должны сделать это//создать лямбду из соответствующей консоли//.

En mi casa elegy Java 8 обычная среда выполнения pero puedes elegir entre muchos otros como Node.js , Питон, Иди… Помните, что Java 8-это просто среда выполнения, но мы не вынуждены использовать Java, но мы можем использовать другие альтернативы, такие как Kotlin или Groovy. Я закончу тем, что перенес то, что я сделал в Java 8, в Kotlin, и посчитаю, если это окажется полезным.

Что касается роли, я создал свой собственный базовый. Здесь правда, что я не был очень ясен и я выбрал там, но, возможно, есть предопределенные, которые уже действительны. У моей роли есть только доступ. к теме журналов. Это основы, которые он предлагает вам по умолчанию.

Как только лямбда будет создана, вы попадете в dashboard, где вы будете управлять всем. Здесь я рекомендую следовать шагам, которые Хавьер имеет в своем посте. В конце у вас будет что-то со следующей пинтой:

На картинке мы видим:

  • Теперь выбранная админ-часть лямбда, которая позволит нам управление кодом, который вы будете выполнять.
  • Навыки Эль-триггера де Алекса.
  • Триггер журналов (я расскажу больше о журналах в другом посте).

И если вы создадите тему версии, у вас будет по крайней мере, один псевдоним настроен против соответствующей версии лямбда.

Теперь у нас есть минимум, необходимый для соединения skill с лямбда.

Подключение навыка и лямбда

Вы должны подключить оба, в два этапа, каждый из вашей консоли. Порядок имеет значение, потому что вы не сможете сохранить конфигурацию конечной точки в skill, не настроив ее сначала подключение лямбда с Alexa.

Вам понадобятся две данные:

  • Skill id, чтобы поместить его в конфигурацию лямбда. Вы можете скопировать его из области конфигурации конечной точки консоли.

Подключение лямбда с навыком

С помощью skill id на изображении выше мы сможем настроить интеграцию в лямбда. Из триггера, который мы добавили, мы можем указать наш skill id, чтобы мы проверили соединение. Не забудьте сохранить настройки один раз вставка id. Это будет необходимо для правильной настройки skill с лямбда.

Подключение навыка с лямбда

С Alexa Developer Console нашего skill мы сможем настроить конечную точку. Это тот же экран, с которого мы взяли skill i d.

Единственное, что нужно indycar-это тип конечной точки, AWS Lambda в моем случае и РНК того же самого. Имейте в виду, что РНК будет той версией, которую вы создали, если вы делаете это так. Если нет, то он будет принимать последнюю версию лямбда всегда по умолчанию и будет сложнее управлять после того, как вы сертифицированы и опубликованы. Мой совет-использовать систему версий.

Нам остается только сохранить настройки конечной точки. Консоль выполняет проверку конфигурации между skill и lambda и сообщит нам, все ли правильно или у нас есть какие-либо проблемы.

Покажи мне код

Вся эта предыдущая работа по сантехнике необходима для того, чтобы skill в конечном итоге поговорил с кодом, который мы собираемся развернуть в лямбде. Я думал объяснить в этом посте также код, но я думаю, что это будет слишком долго, и я расскажу лучше в следующем. Я оставляю здесь ссылка репо GitHub//где я загружаю то, что я делаю так что вы можете проконсультироваться, и если у вас есть какие-либо вопросы, вы можете написать мне здесь комментарий или Twitter.

Краткое резюме:

  • Точкой входа является класс//UpcomingMoviesStreamHandler//, где регистрируются все handles для intents определенных в interaction model. Я дал ему слишком мало любви к коду, правда (нулевое управление ветвями, нулевые тесты и т.д.). Моя первая цель состояла в том, чтобы сертифицировать первую версию skill, и оттуда я улучшаю вещи. Кроме того, такие темы, как тестирование, я думаю, будет интересно посмотреть и рассказать. Список выпусков фильмов, которые запрашивают навыки, как csv-файл в самой лямбде, я не использовал API для момент, хотя у меня есть место для будущего.
  • Класс, который имеет больше miga, – это//NewReleasesIntentHandler//где я обрабатываю основной intent моего навыка и слот даты.

Я углублюсь в код в следующем посте:)

Оригинал: “https://dev.to/kini/creando-un-custom-skill-para-alexa-iii-skill-server-side-en-aws-lambda-y-java-8-20dg”