Yandex Cloud
Поиск
Связаться с экспертомПопробовать бесплатно
  • Кейсы
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
  • Marketplace
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Искусственный интеллект
    • Безопасность
    • Инструменты DevOps
    • Бессерверные вычисления
    • Управление ресурсами
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Калькулятор цен
    • Тарифы
    • Акции и free tier
  • Кейсы
  • Документация
  • Блог
Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Проект Яндекса
© 2026 ООО «Яндекс.Облако»
Yandex Cloud Functions
  • Сопоставление с другими сервисами Yandex Cloud
    • Обзор
      • Обзор
      • Интерфейс Function
      • Интерфейс YcFunction
      • Класс HttpServlet
      • Spring Boot
    • Управление зависимостями
    • Обработчик запросов
    • Контекст вызова
    • Журналирование
    • Обработка ошибок
    • Использование SDK
  • Инструменты
  • Правила тарификации
  • Управление доступом
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Публичные материалы
  • История изменений
  • Вопросы и ответы
  • Обучающие курсы
  1. Разработка на Java
  2. Модель программирования
  3. Интерфейс YcFunction

Использование интерфейса YcFunction для обработчика на Java

Статья создана
Yandex Cloud
Обновлена 16 июня 2026 г.
Открыть в Markdown

Чтобы создать обработчик на Java, вы можете реализовать интерфейс YcFunction. Для этого дополнительно добавьте SDK в зависимости.

Пример корректного обработчика:

import yandex.cloud.sdk.functions.YcFunction;
import yandex.cloud.sdk.functions.Context;

public class Handler implements YcFunction<Integer, String> {
  @Override
  public String handle(Integer i, Context c) {
    return String.valueOf(i);
  }
}

Важно

Указывайте два значения для параметров типа YcFunction: первый тип является типом входного аргумента, второй — типом возвращаемого значения. Для метода handle не забудьте передать второй аргумент — контекст вызова.

Примеры некорректных обработчиков:

import yandex.cloud.sdk.functions.YcFunction;
import yandex.cloud.sdk.functions.Context;
// у YcFunction указан лишь один тип параметра
// у Handler не должно быть типов-параметров (подробнее в требованиях к обработчику)
public class Handler<T> implements YcFunction<T, Integer> {
  @Override
  public Integer handle(T i, Context c) {
    return 2;
  }
}
import yandex.cloud.sdk.functions.YcFunction;
import yandex.cloud.sdk.functions.Context;
// у YcFunction не указаны оба типа параметра
public class Handler implements YcFunction {
  @Override
  public Object apply(Object i, Context c) {
    return i;
  }
}

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

Примечание

Поля этих классов могут иметь любые модификаторы доступа. Если поле непубличное, писать для него getter/setter необязательно.

Пример: вывод информации о функцииПример: вывод информации о функции

Следующая функция получает на вход число, выводит данные о функции, взятые из контекста вызова, в журнал выполнения и возвращает данные о том, является ли переданное число четным.

Важно

Функцию необходимо вызывать с помощью Yandex Cloud CLI или с помощью HTTP-запроса с параметром ?integration=raw.

Файл Handler.java:

import yandex.cloud.sdk.functions.YcFunction;
import yandex.cloud.sdk.functions.Context;

public class Handler implements YcFunction<Integer, Boolean> {

  private String format(String f, String s) {
    return String.format(f, s);
  }

  @Override
  public Boolean handle(Integer number, Context c) {
    System.out.println(format("Function name: %s", c.getFunctionName()));
    System.out.println(format("Function version: %s", c.getFunctionVersion()));
    // если не выбран сервисный аккаунт, напечатается пустая строка
    System.out.println(format("Service account token: %s", c.getTokenJson()));
    return number % 2 == 0;
  }
}

Пример входных данных:

41

В журнале будет напечатано:

Function name: <название_функции>
Function version: <идентификатор_версии_функции>
Service account token: <токен_сервисного_аккаунта>

Возвращаемая строка:

false

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

Предыдущая
Интерфейс Function
Следующая
Класс HttpServlet
Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Проект Яндекса
© 2026 ООО «Яндекс.Облако»