Вызвать функцию Yandex Cloud Functions
Вы можете интегрировать форму с функцией Yandex Cloud Functions. Например, вы можете собирать данные пользователей и передавать их на сайт или в базу данных, чтобы таким образом регистрировать клиентов по форме.
Внимание
Вы можете интегрировать форму с функциями Cloud Functions только в формах для бизнеса. Для этого к форме должна быть подключена организация Yandex Cloud, для которой настроено облако.
Шаг 1. Создать сервисный аккаунт
- Перейдите в консоль Yandex Cloud
. - На панели слева выберите каталог, в котором хотите создать функцию.
- В правом верхнем углу нажмите
→ Создать сервисный аккаунт. - В окне создания сервисного аккаунта заполните поля:
- Имя может содержать только строчные буквы латинского алфавита, цифры и дефисы.
- Описание может содержать любые символы.
- В поле Роли в каталоге добавьте роль
functions.functionInvoker
.
- Нажмите Создать.
Если к вашему аккаунту Yandex Cloud не привязан платежный аккаунт, откроется окно создания платежного аккаунта. Заполните его поля и создайте аккаунт. Подробнее см. в разделе Создание платежного аккаунта
Шаг 2. Создать ключ сервисного аккаунта
- В консоли
на панели слева выберите каталог, в котором находится нужный сервисный аккаунт. - Перейдите на вкладку Сервисные аккаунты.
- Выберите нужный аккаунт.
- На странице аккаунта на верхней панели нажмите Создать новый ключ → Создать API-ключ.
- Напишите краткое описание ключа.
- Нажмите Создать.
- Откроется окно с идентификатором ключа и секретным ключом. Сохраните их в безопасном месте. После закрытия окна доступ к ним получить нельзя.
Шаг 3. Включить запуск облачных функций
- В Yandex Forms откройте форму, для которой хотите настроить интеграцию с облачной функцией.
- Перейдите на вкладку Настройки и на панели слева выберите Дополнительно.
- В разделе Ключ для запуска облачных функций заполните поля Идентификатор ключа и Секретный ключ. Вставьте в них значения, которые скопировали при создании ключа сервисного аккаунта.
- Нажмите Сохранить.
Шаг 4. Создать облачную функцию
- Перейдите обратно в консоль Yandex Cloud
. - На панели слева нажмите
и выберите сервис Cloud Functions. - В правом верхнем углу нажмите Создать функцию.
- На странице создания функции заполните поля:
- Имя может содержать только строчные буквы латинского алфавита, цифры и дефисы.
- Описание может содержать любые символы.
- Выберите язык программирования, на котором будет написана функция.
- Выберите вкладку с источником, из которого будет добавлена функция:
- Редактор кода позволяет написать код функции прямо в нем.
- Object Storage позволяет выбрать бакет и объект с нужной функцией.
- ZIP-архив позволяет прикрепить файл в формате
.zip
с нужной функцией.
- При желании настройте параметры функции и логирование, но это необязательно. Все необходимые для создания функции параметры уже выставлены.
- Нажмите Сохранить изменения.
- На странице функции скопируйте значение ее поля Идентификатор.
Подробнее о создании облачных функций см. в документации облачных функций.
Шаг 5. Настроить интеграцию
- Перейдите обратно в форму и выберите вкладку Интеграции.
- Выберите группу действий, в которой хотите настроить создание задачи, и внизу группы нажмите кнопку Cloud Functions.
- В поле Код функции вставьте идентификатор функции, который скопировали в предыдущем шаге.
- При желании в разделе Параметры выберите дополнительные параметры, которые хотите передать в функцию.
- Нажмите Сохранить.
Ответы на форму будут переданы в формате JSON. Вот его структура:
{
"id":<идентификатор_ответа_на_форму>,
"uid":"<идентификатор_пользователя>",
"data":{
"<идентификатор_вопроса_с_указанием_типа>":{
"value":<ответ_на_вопрос>,
"question":{
"id":<идентификатор_вопроса>,
"slug":"<идентификатор_вопроса_с_указанием_типа>",
"options":{
<параметры_вопроса>
},
"answer_type":{
"id":<идентификатор_типа_вопроса>,"slug":"<тип_вопроса>"
}
}
}
},
"survey":{
"id":"<идентификатор_формы>"
},
"created":"<дата_ответа>",
"cloud_uid":"<идентификатор_пользователя>"
}
Отправленный запрос и результат работы функции можно посмотреть на странице выполненных интеграций.