Функция в Яндекс.Облаке

Сервис Yandex Cloud Functions позволяет создавать функции — бессерверные приложения, которым не нужны выделенные виртуальные машины. В отличие от виртуальных машин, при использовании функций вы платите только за количество вызовов приложения и затраченные вычислительные ресурсы.

В качестве примера будет создан навык «Попугай», который повторяет все, что ему написал или сказал пользователь. Пример реализован на двух языках программирования: Python и Node.js.

Примечание. Функции пока невозможно использовать для навыков Умного дома.
  1. Создайте функцию
  2. Создайте версию функции
  3. Сделайте функцию публичной
  4. Укажите функцию в настройках навыка
  5. Проверьте работу навыка

Создайте функцию

Функция в сервисе Cloud Functions — это набор версий кода. Создайте саму функцию:

  1. Войдите в консоль управления Яндекс.Облака и выберите каталог, в котором хотите создать функцию.

  2. Нажмите кнопку Создать ресурс и выберите пункт Функция.

  3. Введите имя функции, например, myFirstFunction.

  4. Нажмите кнопку Создать.

Теперь вы можете задать запускаемый код навыка в качестве первой версии функции.

Создайте версию функции

Каждая версия функции — это исходный код на определенном языке программирования, с заданным объемом доступной оперативной памяти. Чтобы создать версию:

  1. Откройте консоль управления и выберите каталог с созданной функцией.

  2. Нажмите на функцию в списке, чтобы открыть страницу ее настроек.

  3. Перейдите на вкладку Редактор и создайте версию для нужного языка программирования:

    1. В списке Среда выполнения выберите пункт nodejs12.
    2. Нажмите кнопку Создать файл в блоке редактора и назовите его index.js.
    3. Вставьте в окно редактора код примера навыка.
    4. В поле Точка входа введите текст «index.handler».
    5. В поле Таймаут, с укажите значение «2».
    6. Остальные поля оставьте со значениями по умолчанию и нажмите кнопку Создать версию справа вверху.
Примечание. Вне зависимости от таймаута, указанного в настройках версии, Яндекс.Диалоги будут ждать ответа функции не больше 3 секунд.

Откроется страница функции, где в блоке История версий появится созданная вами версия с тегом $latest.

Сделайте функцию публичной

По умолчанию доступ к запуску функций ограничен. Чтобы функцию могли вызывать Яндекс.Диалоги, сделайте ее публичной:

  1. Откройте консоль управления и выберите каталог с созданной функцией.

  2. Нажмите на функцию в списке, чтобы открыть страницу ее настроек.

  3. В блоке Общая информация включите переключатель Публичная функция.

Теперь вашу функцию можно указать в настройках навыка Алисы.

Укажите функцию в настройках навыка

Перейдите в кабинет разработчика Диалогов и настройте нужный навык:

  1. Перейдите на вкладку Настройки.

  2. В блоке Backend выберите вариант Функция в Яндекс.Облаке.

  3. Из выпадающего списка выберите нужную функцию.

    В списке появятся только те публичные функции, к которым есть доступ у вашего аккаунта в Яндекс.Облаке.

  4. Нажмите кнопку Сохранить внизу страницы.

Проверьте работу навыка

Перейдите на вкладку Тестирование на странице навыка. Если все настроено правильно, навык предложит начать беседу: «Hello! I'll repeat anything you say to me.»

Отправьте сообщение с любым текстом и убедитесь, что пришел ответ с тем же текстом.