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

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

  • Версия функции
  • Формат загрузки кода
  • Тег версии
  • Модель программирования
  • Описание модели
  • Масштабирование функции
  • Примеры использования
  1. Концепции
  2. Функция

Функция

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

Функция позволяет вам размещать код в Yandex Cloud, который можно запускать по запросу или триггеру.

Возможные статусы функции:

  • Creating — функция создана, идут фоновые процессы по ее инициализации.
  • Active — функция успешно создана и готова к использованию.
  • Deleting — функция и все связанные с ней ресурсы удаляются. Функция еще существует, но уже недоступна для использования.
  • Error — произошла ошибка при создании функции. Функция существует, но не может быть использована.

Сразу после создания функция содержит только метаинформацию о себе: имя, описание, уникальный идентификатор и т. д. Для начала работы с функцией необходимо создать версию функции. Выполнить функцию можно с помощью HTTPS API или CLI.

Перед написанием функции, ознакомьтесь с моделью программирования.

Версия функцииВерсия функции

Версия содержит код функции, параметры запуска и все необходимые зависимости. Вы можете работать с разными версиями одной функции на разных стадиях процесса разработки, например, версия в разработке, альфа-версия, бета-версия. При внесении каких-либо изменений всегда создается новая версия с тегом по умолчанию — $latest, при этом не имеет значения, загрузили вы совершенно новый код или внесли только незначительные правки. Версию с тегом $latest нельзя удалить.

Возможные статусы версии функции:

  • Creating — версия функции создана, идут фоновые процессы по ее инициализации.
  • Active — версия функции успешно создана и готова к использованию.
  • Obsolete — версия функции устарела и скоро будет удалена из-за длительного отсутствия тегов. Чтобы вернуть ее в статус Active, нужно добавить тег.
  • Deleting — версия функции удаляется. Она еще существует, но уже недоступна для использования.

Формат загрузки кодаФормат загрузки кода

Для создания версии вы можете воспользоваться редактором кода или загрузить код и необходимые зависимости, используя один из форматов, описанных в таблице ниже. После создания функции объект с кодом больше не нужен. Его можно удалить из хранилища.

Формат Консоль управления Yandex Cloud CLI
ZIP-архив с вашего ПК
ZIP-архив из S3 с указанием бакета и объекта
Директория
Файл

Важно

Файл больше 3,5 МБ необходимо загружать через Object Storage. Подробнее об ограничениях читайте в разделе Квоты и лимиты в Cloud Functions.

Подробнее о том, как создать версию, читайте в разделе Создать версию функции.

Тег версииТег версии

Теги используются для вызова определенной версии функции. Каждый тег должен быть уникален в рамках функции. У одной версии может быть несколько тегов.

Примечание

При создании новой версии ей присваивается тег по умолчанию — $latest. Тег $latest нельзя удалить.

Модель программированияМодель программирования

Cloud Functions поддерживает разные языки программирования. Вне зависимости от выбранного вами языка, при написании кода необходимо опираться на принятую в сервисе модель программирования. В ней есть как элементы, которые необходимо реализовать пользователю, так и механизмы, которые уже реализованы на стороне сервиса и могут быть использованы по необходимости.

Описание моделиОписание модели

Чтобы функция запустилась, опишите в ней обработчик. Он определяется при написании кода и обрабатывает поступающие данные, вызывая необходимые функции и методы в коде. Обработчик должен принимать данные, которые приходят с запросами функции, и контекст, который передает Cloud Functions. Для некоторых сред выполнения есть требования к абсолютному пути к файлу, в котором находится обработчик:

  • Python, Go, Java — не должен содержать символ . в названии файла до расширения, например .handler.py.
  • .NET Core — не должен содержать символ . в названии файла до расширения и начале названия директории, в которой находится файл с обработчиком, например .handler.cs или .test/handler.cs.

Контекст обеспечивает взаимодействие кода вашей функции с Cloud Functions. Например, с его помощью функция может узнать, сколько времени осталось до момента, когда Cloud Functions завершит ее выполнение.

Поступающие запросы обрабатываются функцией по одному. Чтобы функция обрабатывала несколько запросов сразу, используйте возможности асинхронного выполнения кода, которые предоставляет среда выполнения.

Чтобы сообщить сервису об ошибке при выполнении функции, обрабатывайте ошибки с помощью исключений.

Выполнение функции журналируется сервисом, но при необходимости вы можете реализовать в коде вашей функции дополнительное ведение журналов.

Масштабирование функцииМасштабирование функции

Экземпляр функции обрабатывает один ее вызов в один момент времени. Если функция вызывается быстрее, чем экземпляр успевает обработать запрос, сервис масштабирует функцию — запускает ее дополнительные экземпляры. Таким образом обеспечивается параллельная обработка запросов. В Cloud Functions можно задать:

  • zone_instances_limit — количество экземпляров функции в зоне доступности;
  • zone_requests_limit — количество одновременно выполняемых вызовов функции в зоне доступности;
  • provisioned_instances_count — количество подготовленных экземпляров;
  • concurrency — максимальное количество вызовов, одновременно обрабатываемых одним экземпляром функции. Доступно не для всех сред выполнения. Подробнее см. Одновременные вызовы экземпляра функции.

Примечание

Вызовы распределяются по зонам доступности случайным образом. Cloud Functions не гарантирует равномерное распределение вызовов по зонам. Например, все вызовы вне зависимости от их количества могут попасть в одну зону.

Настройки масштабирования применяются в течение 5 минут после их задания.

Одновременные вызовы экземпляра функцииОдновременные вызовы экземпляра функции

Чтобы один экземпляр функции в один момент времени мог обрабатывать несколько ее вызовов, можно задать параметр concurrency при создании версии функции. Идентификаторы таких вызовов (RequestID) должны быть уникальными, иначе при попытке обработать вызов с повторяющимся идентификатором будет возвращаться ошибка.

Если хотя бы один вызов достигнет таймаута, он и все остальные вызовы, которые обрабатываются тем же экземпляром функции, завершатся. Подробнее о таймауте см. Лимиты.

Параметр concurrency доступен для функций со следующими средами выполнения:

  • Node.js
  • Go
  • Java
  • Bash
  • Kotlin

ЛимитыЛимиты

Когда количество экземпляров функции достигает значения zone_instances_limit, Cloud Functions перестает ее масштабировать. Если вызовов функции больше, чем могут обработать экземпляры, вызов становится в очередь, но при этом считается выполняемым. Когда количество выполняемых вызовов достигает значения zone_requests_limit, сервис перестает ставить вызовы в очередь и возвращает ошибку 429 TooManyRequests.

Подготовленные экземплярыПодготовленные экземпляры

Подготовленный экземпляр — это экземпляр функции, при запуске которого гарантированно нет холодного старта. В подготовленном экземпляре до вызова функции:

  • запускается интерпретатор;
  • инициализируются компоненты среды выполнения Cloud Functions;
  • загружается и инициализируется пользовательский код.

Время простоя подготовленных экземпляров и выполнения в них функции тарифицируется отдельно.

Если количество вызовов функции превышает количество, которое могут обработать подготовленные экземпляры, Cloud Functions масштабирует функцию в пределах квот. Новые вызовы могут быть обработаны как подготовленным экземпляром, так и обычным — в зависимости от того, какой освободится или создастся раньше.

Подготовленные экземпляры расходуют следующие квоты, даже если не запущены:

  • Количество экземпляров функций в каждой зоне доступности.
  • Суммарный объем RAM для всех запущенных функций в каждой зоне доступности.
  • Количество подготовленных экземпляров функций в одном облаке.

Примеры использованияПримеры использования

  • Разработка пользовательской интеграции в API Gateway
  • Запуск вычислений в Yandex DataSphere с помощью API
  • Канареечный релиз функции Cloud Functions
  • Передача событий Yandex Cloud Postbox в Yandex Data Streams и их анализ с помощью Yandex DataLens
  • Разработка функций в Functions Framework и их развертывание в Yandex Serverless Containers
  • Мониторинг показаний датчиков и уведомления о событиях
  • Развертывание отказоустойчивой архитектуры с прерываемыми виртуальными машинами

См. такжеСм. также

  • Создать версию функции
  • Добавить настройки масштабирования

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

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