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

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

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

  1. Создайте функцию
  2. Создайте версию функции
  3. Укажите функцию в настройках навыка
  4. Проверьте работу навыка

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

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

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

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

  3. Введите имя функции, например, my-first-function.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Примечание. В списке отображаются функции, которые вы имеете право просматривать, но навык будет работать только если ваш аккаунт может также запускать выбранную функцию. Разрешение на запуск входит в роли Яндекс.Облака serverless.functions.invoker, editor и выше.
  4. Нажмите кнопку Сохранить внизу страницы.

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

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

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