Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Cloud Functions
  • Сопоставление с другими сервисами Yandex Cloud
    • Обзор
      • Обзор
      • Функция верхнего уровня
      • Интерфейс YcFunction
    • Управление зависимостями
    • Обработчик запросов
    • Контекст вызова
    • Журналирование
    • Обработка ошибок
    • Использование SDK
  • Инструменты
  • Правила тарификации
  • Управление доступом
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • История изменений
  • Вопросы и ответы
  • Обучающие курсы

В этой статье:

  • Обособленные типы данных
  • Требования к обработчику
  1. Разработка на Kotlin
  2. Модель программирования
  3. Обзор

Модель программирования на языке Kotlin

Статья создана
Yandex Cloud
Обновлена 6 августа 2024 г.
  • Обособленные типы данных
  • Требования к обработчику

Сервис Cloud Functions предоставляет две модели программирования на языке Kotlin — с помощью функций верхнего уровня и интерфейса YcFunction. Интерфейс YcFunction в отличие от функций верхнего уровня дает доступ к контексту вызова.

Обе модели программирования позволяют взаимодействовать с сервисами Yandex Cloud при помощи SDK. Для этого добавьте SDK в зависимости Gradle.

Обособленные типы данныхОбособленные типы данных

Для моделей программирования на языке Kotlin есть несколько обособленных типов: InputStream, String и ByteArray. Работа с ними отличается от работы с другими типами. Если аргумент в функции-обработчике принимает обособленный тип, среда выполнения не преобразовывает входящий HTTPS-запрос в JSON-интерпретацию. Вместо этого среда выполнения передает запрос напрямую в пользовательский обработчик.

Работа с обособленными типами отличается, когда они становятся Nullable. Допустим, тело входного запроса — null, и пользователь вызвал функцию с параметром ?integration=raw. Результат, который получает обработчик, зависит от типа агрумента:

  • Если аргумент принимает тип String?, обработчику передается значение null.
  • Если аргумент принимает тип String, обработчику передается строка, которая содержит текст null.

Примечание

В качестве библиотеки для сериализации и десериализации из JSON используется Moshi.

Требования к обработчикуТребования к обработчику

Вне зависимости от выбранной модели загрузка проекта осуществляется одним из способов: в виде исходного кода, JAR-архива или Gradle-проекта. Также к классам с обработчиками применяются требования, которые различаются в зависимости от модели программирования:

  • Для функции верхнего уровня:

    • Функция должна быть публичной.
    • Она не должна быть обобщенной.
  • Для интерфейса YcFunction:

    • Класс, содержащий функцию-обработчик, должен быть публичным.

    • У класса должен быть публичный конструктор без аргументов.

      По умолчанию он есть. Но если вы создали свой конструктор, принимающий аргументы, создайте также конструктор, не принимающий никаких аргументов.

    • Класс не должен быть обобщенным.

Была ли статья полезна?

Предыдущая
Обзор
Следующая
Функция верхнего уровня
Проект Яндекса
© 2025 ООО «Яндекс.Облако»