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. Обзор

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

Статья создана
Yandex Cloud
Обновлена 25 сентября 2023 г.

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

Разница между этими моделями состоит в наличии контекста вызова. Если, например, нужно взаимодействовать с сервисами Yandex Cloud при помощи SDK, то рекомендуем выбрать YcFunction.

Вне зависимости от выбранной модели, загрузка проекта осуществляется одним из способов: в виде опубликованного csproj-проекта или набора файлов *cs с исходным кодом. Последний вариант подходит для обработчиков, не имеющих внешних зависимостей. Также, на класс, содержащий функцию-обработчик, накладываются следующие требования:

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

Вне засимости от выбранной модели обработчиком может быть async-метод, возвращающий Task или Task<T>. Для варианта с независимым классом дополнительно доступен вариант возвращаемого значения async void.

При этом есть два обособленных типа: byte[] и String, работа с которыми немного отличается от работы с другими типами. При их использовании в качестве типа аргумента функции-обработчика, среда выполнения не будет преобразовывать входящий запрос в JSON-интерпретацию для этих типов, а передаст его напрямую в пользовательскую функцию-обработчик. Исключением являются случаи, когда используется параметр ?integration=raw.

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

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