Функция

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

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

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

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

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

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

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

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

Важная информация

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

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

Тег версии

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

Примечание

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

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

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

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

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

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

Поступающие запросы обрабатываются функцией по одному. Если функция вызывается быстрее, чем один экземпляр успевает обрабатывать запрос, сервис масштабирует функцию — запускает ее дополнительные экземпляры. Таким образом обеспечивается параллельная обработка запросов.

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

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

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