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

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

  • Пример
  • Вывод информации о функции
  1. Разработка на .NET Core
  2. Модель программирования
  3. Интерфейс YcFunction

Использование интерфейса YcFunction для задания функции-обработчика на С#

Статья создана
Yandex Cloud
Обновлена 21 апреля 2025 г.
  • Пример
    • Вывод информации о функции

Вы можете задать функцию-обработчик на C#, реализовав интерфейс YcFunction. Для этого дополнительно нужно добавить SDK в зависимости.

Важно

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

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

public class Handler : YcFunction<int, String> {
  public String FunctionHandler(int i, Context c) {
    return String.valueOf(i);
  }
}

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

// у YcFunction указан лишь один тип параметра
// у Handler не должно быть типов-параметров
public class Handler<T> : YcFunction<T, int> {
  public int FunctionHandler(T i, Context c) {
    return 2;
  }
}
// у YcFunction не указаны оба типа параметра
public class Handler : YcFunction {
  public Object FunctionHandler(Object i, Context c) {
    return i;
  }
}

Подробнее о требованиях к обработчику см. в разделе Модель программирования на языке C#.

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

Примечание

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

ПримерПример

Вывод информации о функцииВывод информации о функции

Следующая функция:

  1. Получает на вход число.
  2. Выводит данные о функции, взятые из контекста вызова, в журнал выполнения
  3. Возвращает данные о том, является ли переданное число четным.

Важно

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

Файл Handler.cs:

using Yandex.Cloud.Functions;

public class Handler : YcFunction<int, bool> {

  public bool FunctionHandler(int number, Context c) {
    Console.WriteLine($"Function name: {c.FunctionId}");
    Console.WriteLine($"Function version: {c.FunctionVersion}");
    Console.WriteLine($"Service account token: {c.TokenJson}");
    return number % 2 == 0;
  }
}

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

41

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

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

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

false

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

Предыдущая
Интерфейс Function
Следующая
Управление зависимостями
Проект Яндекса
© 2025 ООО «Яндекс.Облако»