Yandex.Cloud
  • Сервисы
  • Почему Yandex.Cloud
  • Сообщество
  • Решения
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Yandex Cloud Functions
  • Начало работы
    • Обзор
    • Создание функции
      • Обзор
      • Python
      • Node.js
      • PHP
      • Go
      • Bash
    • Создание триггера
      • Обзор
      • Таймер
      • Триггер для Message Queue
      • Триггер для Object Storage
      • Триггер для Container Registry
      • Триггер для Cloud Logs
      • Триггер для Yandex IoT Core
  • Пошаговые инструкции
    • Все инструкции
    • Получение IAM-токена сервисного аккаунта с помощью функции
    • Управление правами доступа к функции
    • Управление функцией
      • Создание функции
      • Управление версиями функции
      • Работа в редакторе кода
      • Вызов функции
      • Изменение функции
      • Просмотр графиков мониторинга
      • Просмотр журнала выполнения
      • Удаление функции
    • Управление триггером
      • Получение информации о триггере
      • Создание таймера
      • Создание триггера для Message Queue
      • Создание триггера для Object Storage
      • Создание триггера для Container Registry
      • Создание триггера для Cloud Logs
      • Создание триггера для Yandex IoT Core
      • Изменение триггера
      • Удаление триггера
  • Концепции
    • Обзор
    • Функция
    • Вызов функции
    • Среда выполнения
      • Обзор
      • Окружение
      • Контекст выполнения
    • Сборщик
    • Триггер
      • Обзор
      • Таймер
      • Триггер для Message Queue
      • Триггер для Object Storage
      • Триггер для Container Registry
      • Триггер для Cloud Logs
      • Триггер для Yandex IoT Core
    • Dead Letter Queue
    • Лог-группы
    • Мониторинг
    • Резервное копирование
    • Квоты и лимиты
  • Разработка на Node.js
    • Обзор
    • Управление зависимостями
    • Обработчик запросов
    • Контекст вызова
    • Журналирование
    • Обработка ошибок
    • Использование SDK
  • Разработка на Python
    • Обзор
    • Управление зависимостями
    • Обработчик запросов
    • Контекст вызова
    • Журналирование
    • Обработка ошибок
    • Использование SDK
  • Разработка на Go
    • Обзор
    • Управление зависимостями
    • Обработчик запросов
    • Контекст вызова
    • Журналирование
    • Обработка ошибок
    • Использование SDK
  • Разработка на PHP
    • Обзор
    • Управление зависимостями
    • Обработчик запросов
    • Контекст вызова
    • Журналирование
    • Обработка ошибок
  • Разработка на Bash
    • Обзор
    • Обработчик запросов
    • Журналирование
    • Обработка ошибок
    • Использование SDK
  • Разработка на Java
    • Обзор
    • Модель программирования
      • Обзор
      • Интерфейс Function
      • Интерфейс YcFunction
      • Класс HttpServlet
      • Spring Boot
    • Управление зависимостями
    • Обработчик запросов
    • Контекст вызова
    • Журналирование
    • Обработка ошибок
    • Использование SDK
  • Разработка на R
    • Обзор
    • Модель программирования
    • Управление зависимостями
    • Обработчик запросов
    • Контекст вызова
    • Журналирование
    • Обработка ошибок
  • Разработка на C#
    • Обзор
    • Модель программирования
      • Обзор
      • Интерфейс Function
      • Интерфейс YcFunction
    • Управление зависимостями
    • Обработчик запросов
    • Контекст вызова
    • Журналирование
    • Обработка ошибок
    • Использование SDK
  • Сценарии использования
    • Создание навыка Алисы
  • Правила тарификации
  • Управление доступом
  • Справочник API Functions
    • Аутентификация в API
    • gRPC
      • Обзор
      • FunctionService
      • OperationService
    • REST
      • Обзор
      • Function
        • Обзор
        • create
        • createVersion
        • delete
        • get
        • getVersion
        • getVersionByTag
        • list
        • listAccessBindings
        • listOperations
        • listRuntimes
        • listTagHistory
        • listVersions
        • removeTag
        • setAccessBindings
        • setTag
        • update
        • updateAccessBindings
  • Справочник API Triggers
    • Аутентификация в API
    • gRPC
      • Обзор
      • TriggerService
      • OperationService
    • REST
      • Обзор
      • Trigger
        • Обзор
        • create
        • delete
        • get
        • list
        • listOperations
        • update
  • Вопросы и ответы
  1. Концепции
  2. Функция

Функция

  • Версия функции
    • Формат загрузки кода
    • Тег версии
  • Модель программирования
    • Описание модели

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

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

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

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

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

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

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

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

Важно

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

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

Тег версии

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

Примечание

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

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

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

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

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

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

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

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

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

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

В этой статье:
  • Версия функции
  • Формат загрузки кода
  • Тег версии
  • Модель программирования
  • Описание модели
Language
Вакансии
Политика конфиденциальности
Условия использования
© 2021 ООО «Яндекс.Облако»